home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / hk2 / bas / hk2cfg.bas < prev    next >
Encoding:
BASIC Source File  |  1995-08-03  |  82.8 KB  |  2,102 lines

  1. 10 '------------------------------------------------------------------
  2. 20 '  HK2CFG.BAS  Copyrigit(C) T.Komura     / 家計簿システムHK    /
  3. 30 '                                       / Version 2           /
  4. 31 '  Version 1.1  1993.08.03             / 環境設定プログラム  /
  5. 32 '          1.2  1993.09.05 金額入力電卓機能、月次開始日指定追加
  6. 33 '          1.4  1994.06.12
  7. 34 '  HK v2.0 L10  1995.06.26 HK Version 2
  8. 35 '  HK v2.0 L10d 1995.06.26 家計簿ファイル無いとき作成確認を求め作成
  9. 36 '  HK v2.0 L10j 1995.08.03 変更後他モードへの移行時保存確認漏れ
  10. 37 '               1995.08.03 セレクタをパスした時prgdrvに戻れないのを修正
  11. 100 '------------------------------------------------------------------
  12. 110 CLEAR ,,,,1024,300*1024
  13. 150 DIM CFI$(60),CFIDN(200),CFGX$(200)
  14. 160 GOSUB *CONFIGファイルチェック2
  15. 200 *初期設定:'--------------------------------------------------------
  16. 210 CMD$="CD "+PRGDRV$:SHELL CMD$
  17. 220 CONSOLE 0,24,0:MOUSE 0
  18. 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
  19. 240 LOAD@ FMBDRV$+"\FMP.FMB"
  20. 250 PLAY "@30T150V6":DATX$=DATE$
  21. 255 'ウインドウ関係座標配列
  22. 256 G=7:B=50
  23. 260 DIM B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B),BST(G,B)
  24. 265 DIM W_X1(G),W_X2(G),W_Y1(G),W_Y2(G)
  25. 266 DIM W_XA(G),W_XB(G),W_YA(G),W_YB(G)
  26. 267 DIM MD_SB#(10465),MD_SW#(10465),MD_SX#(10465):'max : HELP window
  27. 268 'デ-タ配列
  28. 270 DIM DYN$(16),DRM$(16),DYN#(16),SDYN$(20),SDYN#(20)
  29. 272 DIM CFDX(60),CFDY(60),CFDC(60),CFDL(60)
  30. 274 DIM TDYN1$(15),TSDYN1$(20),TDYN2$(15),TSDYN2$(20)
  31. 276 DIM TDYN1#(15),TSDYN1#(20),TDYN2#(15),TSDYN2#(20)
  32. 280 DIM WRD$(15,128),WLN(15,128),WRDM(128)    :'辞書データ
  33. 295 DIM DOC$(2000)                            :'HELPデータ
  34. 300 INTERVAL 1                  :'プログラム先頭
  35. 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭 
  36. 320 GOSUB *ボタン座標読み取り
  37. 330 GOSUB *内容表示座標読み取り
  38. 335 LOADM "DOS.REX",0
  39. 340 GOSUB *F_初期化
  40. 360 DIM LMB#(900),ABOUTD#(2071),HLPL#(397),HLPC#(8449),DICD#(2565)
  41. 370 ON ERROR GOTO *ERROR
  42. 400 GOSUB *MCREAD:GOSUB *DCLOCKREAD
  43. 440 '
  44. 510 CTRLB1=17:'コントロールボタン個数
  45. 515 CTRLB2=15
  46. 524 HKCFG  =6  :'検索ボタン番号
  47. 526 HKSRCEND=10:'終了ボタン番号
  48. 528 HKCFGSV=13 :'保存ボタン番号
  49. 530 RETN=0
  50. 540 DOCF$="\HK2cfg.HLP"
  51. 980 '
  52. 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  53. 1005 GOSUB *SEFFECT1
  54. 1010 MESN=1:GOSUB *MESDSP:PRINT VERN$;
  55. 1015 MESN=4:GOSUB *SNDMSG
  56. 1020 GOSUB *本日の日付
  57. 1035 MOUSE 1,320,64,1
  58. 1040 MCN=1:GOSUB *MCDSET
  59. 1050 GOSUB *設定内容一覧表示
  60. 1100 *メイン選択
  61. 1110 MESN=2:GOSUB *MESDSP'
  62. 1120 SWPASS=1:G=MPG+1:GOSUB *MCSELECT
  63. 1130 IF SWNO>13 THEN *SSEL
  64. 1140 IF SWNO<0 THEN 1120
  65. 1150 '             HK2 記入 検索 分析 CLDR 設定 日付 時計 help exit 計算 読出 保存 
  66. 1155 ON SWNO GOTO *S01,*S02,*S02,*S02,*S02,*S02,*S03,*S03,*S07,*S09,*S04,*S05,*S06
  67. 1160 GOTO *メイン選択
  68. 1190 '
  69. 2000 *S06:'保存 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  70. 2010 G=1:B=HKCFGSV:BST(G,B)=1:GOSUB *BTN_ONOFF
  71. 2020 MESN=7:GOSUB *MESDSP
  72. 2030 CMES$="設定内容保存":GOSUB *確認
  73. 2035 IF CAUNO=1 THEN 2040 ELSE 2070
  74. 2040 *S06_01
  75. 2042 IF RETN=0 THEN 2045
  76. 2043 G=1:B=HKCFGSV:BST(G,B)=1:GOSUB *BTN_ONOFF
  77. 2045 GOSUB *CONFIGファイル出力:EDITF=0
  78. 2050 GOSUB *CONFIGファイルチェック2
  79. 2060 GOSUB *設定内容一覧表示
  80. 2070 G=1:B=HKCFGSV:BST(G,B)=0:GOSUB *BTN_ONOFF
  81. 2075 GOSUB *HLIDXファイルチェック
  82. 2080 ON RETN+1 GOTO *メイン選択,*S0901,*S0201
  83. 2090 '
  84. 2200 *S05:'読出 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  85. 2210 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  86. 2220 MESN=9:GOSUB *MESDSP
  87. 2230 CMES$="元の設定に戻す":GOSUB *確認
  88. 2235 IF CAUNO=1 THEN 2250 ELSE 2270
  89. 2240 MESN=8:GOSUB *MESDSP
  90. 2250 GOSUB *CONFIGファイルチェック2
  91. 2260 GOSUB *設定内容一覧表示
  92. 2270 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  93. 2280 GOTO *メイン選択
  94. 2290 '
  95. 2300 *S04:'累積残高計算 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  96. 2310 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  97. 2340 GOSUB *総計ファイル作成
  98. 2370 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  99. 2380 GOTO *メイン選択
  100. 2390 '
  101. 4000 *SSEL'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  102. 4010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  103. 4030 CFNO=SWNO-13
  104. 4032 IF CFNO=16 THEN GOTO 4500
  105. 4036 EDITF=1
  106. 4041 IF CFNO=22               THEN GOSUB *SNDMF設定         :GOTO 4500
  107. 4045 IF CFNO=20 OR CFNO=21    THEN GOSUB *SNDMFウエイト設定 :GOTO 4500
  108. 4050 IF CFNO=24 OR CFNO=25    THEN GOSUB *DICF設定          :GOTO 4500
  109. 4057 IF CFNO=27               THEN GOSUB *SCALC設定         :GOTO 4500
  110. 4058 IF CFNO=29               THEN GOSUB *月次開始日設定    :GOTO 4500
  111. 4059 IF CFNO=30               THEN GOSUB *残高起算日設定    :GOTO 4100
  112. 4062 IF CFNO>=17 AND CFNO<=19 THEN GOSUB *パス設定          :GOTO 4500
  113. 4064 IF CFNO=23 OR CFNO=26    THEN GOSUB *パス設定          :GOTO 4500
  114. 4065                               GOSUB *環境設定入力      :GOTO 4500
  115. 4070 '
  116. 4080 GOTO *メイン選択
  117. 4090 '
  118. 4100 IF CFIYMDCF=0 THEN GOTO 4500
  119. 4110 G=1:B=11:BST(G,B)=1:GOSUB *BTN_ONOFF
  120. 4120 GOSUB *総計ファイル作成
  121. 4130 G=1:B=11:BST(G,B)=0:GOSUB *BTN_ONOFF:GOTO 4500
  122. 4490 '
  123. 4500 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  124. 4580 GOTO *メイン選択
  125. 4590 '
  126. 6000 *S01:'About HK2---------------------------------------------------'
  127. 6010  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  128. 6020  MESN=1:GOSUB *MESDSP
  129. 6030  GOSUB *ABOUT表示
  130. 6060  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  131. 6070  GOTO *メイン選択
  132. 6080 '
  133. 6100 *S03:'Digital Clock ----------------------------------------------'
  134. 6110  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  135. 6120  MESN=1:GOSUB *MESDSP
  136. 6130  GOSUB *DGCLOCK
  137. 6160  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  138. 6170  GOTO *メイン選択
  139. 6180 '
  140. 6200 *S07:'Help -------------------------------------------------------'
  141. 6210  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  142. 6220  MESN=20:GOSUB *MESDSP
  143. 6230  GOSUB *HKHELP
  144. 6260  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  145. 6270  GOTO *メイン選択
  146. 6280 '
  147. 7900 '
  148. 8000 *S02:'プログラム呼び出し・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  149. 8010 IF SWNO=HKCFG THEN GOTO *メイン選択
  150. 8012 G=1:B=SWNO :BST(G,B)=1:GOSUB *BTN_ONOFF
  151. 8022 IF EDITF=0 THEN *S0201
  152. 8024 MESN=11:GOSUB *MESDSP
  153. 8026 CMES$="設定内容未保存":GOSUB *確認
  154. 8028 IF CAUNO=2 THEN *S0201
  155. 8030 RETN=2:GOTO *S06_01
  156. 8040 *S0201
  157. 8060 G=1:B=HKCFG:BST(G,B)=0:GOSUB *BTN_ONOFF
  158. 8110 MESN=10:GOSUB *MESDSP':MESN=24:GOSUB *SNDMSG
  159. 8120 INTERVAL OFF:GOSUB *SEFFECT2
  160. 8130 ON SWNO-1 GOTO *S021,*S022,*S023,*S024,*S02
  161. 8150 '
  162. 8160 *S021:RUN "HK2in.bas"
  163. 8170 *S022:RUN "HK2src.bas"
  164. 8180 *S023:RUN "HK2anl.bas"
  165. 8190 *S024:RUN "HK2cld.bas"
  166. 8940 '
  167. 9000 *S09:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  168. 9020 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  169. 9030 IF EDITF=0 THEN *S0901
  170. 9040 MESN=11:GOSUB *MESDSP
  171. 9045 CMES$="設定内容未保存":GOSUB *確認
  172. 9050 IF CAUNO=2 THEN 9110
  173. 9070 RETN=1:GOTO *S06_01
  174. 9100 *S0901
  175. 9110 MESN=10:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
  176. 9130 MOUSE 5:INTERVAL OFF:GOSUB *SEFFECT2
  177. 9150 *ENDP
  178. 9155 RUN "hk2.bas"
  179. 9160 '
  180. 9900 '-------------------------------------------------------------------
  181. 9910 '    GENERAL SUB ROUTINE
  182. 9920 '-------------------------------------------------------------------
  183. 10000 *CHR1IN:'////////// 1文字入力
  184. 10010  A$=INKEY$:IF A$="" THEN 10010
  185. 10020  A=INSTR(C$,A$)
  186. 10030  IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
  187. 10040  RETURN
  188. 10050 '
  189. 10060 '
  190. 10070 *MESDSP:'////////// メッセージ表示
  191. 10080  RESTORE *MESDAT
  192. 10090  FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
  193. 10105  LINE(0,463)-(639,479),PSET,0,BF
  194. 10115  SYMBOL(0,465),MES$,.75!,.75!,CM
  195. 10120  'IF BM=1 THEN PLAY "L4O4A"
  196. 10130  RETURN
  197. 10140 '
  198. 10200 *MESDAT:'////////// メッセージデータ
  199. 10205 '    XM, YN, CM, CB, BM
  200. 10210 DATA  2, 23,  5,  0,  1 :'--- 01
  201. 10215 DATA "家計簿システム HK2 [設定]モード"
  202. 10220 DATA  2, 23,  7,  0,  0 :'--- 02
  203. 10225 DATA "適当なボタンをマウスカーソルで押して(左クリック)ください。"
  204. 10230 DATA  2, 23,  5,  0,  0 :'--- 03
  205. 10235 DATA "                                                                設定内容を入力してください。"
  206. 10240 DATA  2, 23,  4,  0,  1 :'--- 04
  207. 10245 DATA "音声案内機能を[有効]にします。"
  208. 10250 DATA  2, 23,  4,  0,  1 :'--- 05
  209. 10255 DATA "音声案内機能を[無効]にします。"
  210. 10260 DATA  2, 23,  4,  0,  1 :'--- 06
  211. 10265 DATA "音声案内のウエイトタイムを変更します。"
  212. 10270 DATA  2, 23,  6,  0,  0 :'--- 07
  213. 10275 DATA "設定内容をファイルに保存します。 [OK]-保存する [NG]-保存しない"
  214. 10280 DATA  2, 23,  4,  0,  0 :'--- 08
  215. 10285 DATA "★設定ファイル読み込み中"
  216. 10290 DATA  2, 23,  6,  0,  1 :'--- 09
  217. 10295 DATA "設定内容を元の状態に戻します。   [OK]-元に戻す [NG]-元に戻さない"
  218. 10300 DATA  2, 23,  5,  0,  0 :'--- 10
  219. 10305 DATA "★★★ しばらくお待ちください。"
  220. 10310 DATA  2, 23,  6,  0,  0 :'--- 11
  221. 10315 DATA "設定内容が未保存です。           [OK]-設定内容を保存して終了  [NG]-保存しないで終了"
  222. 10320 DATA  2, 23,  4,  0,  1 :'--- 12
  223. 10325 DATA "辞書入力機能を[有効]にします。"
  224. 10330 DATA  2, 23,  4,  0,  1 :'--- 13
  225. 10335 DATA "辞書入力機能を[無効]にします。"
  226. 10340 DATA  2, 23,  4,  0,  1 :'--- 14
  227. 10345 DATA "★新規家計簿ファイル作成中。 しばらくお待ちください。"
  228. 10350 DATA  2, 23,  6,  0,  1 :'--- 15
  229. 10355 DATA "家計簿ファイルがありません。 新規に家計簿ファイルを作成しますか? [OK]-作成する [NG]-作成しない"
  230. 10360 DATA  2, 23,  4,  0,  1 :'--- 16
  231. 10365 DATA "家計簿金額入力時の電卓機能を[有効]にします。"
  232. 10370 DATA  2, 23,  4,  0,  1 :'--- 17
  233. 10375 DATA "家計簿金額入力時の電卓機能を[無効]にします。"
  234. 10380 DATA  2, 23,  7,  0,  1 :'--- 18
  235. 10385 DATA "ディレクトリをファイルセレクタで選んでください。          [OK]-選択 [Cancel]-取消"
  236. 10390 DATA  2, 23,  6,  0,  1 :'--- 19
  237. 10395 DATA "残高演算を実行します。 家計簿データディスクをセットしてください。  [OK]-実行 [NG]-取消"
  238. 10400 DATA  2, 23,  5,  0,  1 :'--- 20
  239. 10405 DATA "HKHELP★設定モードの説明を表示しています。  頁移動-[ヒ][フ] 行移動-[▲][▼] 終了-[■]" 
  240. 10410 DATA  2, 23,  4,  0,  1 :'--- 21
  241. 10415 DATA "★残高演算実行中"
  242. 10420 DATA  2, 23,  7,  0,  1 :'--- 22
  243. 10425 DATA "新規に家計簿ファイルを作成する年月を入力してください。"
  244. 10600 *SEFFECT1'////////////////////////////////////////////////////////
  245. 10605  SCREEN 1,1,2,1:PALETTE 9,[0,0,0]:LINE(0,0)-(639,479),PSET,1,BF
  246. 10610  SCREEN 1,0,2,1:GOSUB *表紙表示
  247. 10612  SCREEN 1,1,3,1:
  248. 10620  FOR II=0 TO 240 STEP 2:PALETTE 9,[II,II,II]
  249. 10621 '   LINE(320-II,240-II*3/4)-(320+II,240+II*3/4),PSET,0,B
  250. 10622     LINE(0,240-II)-(639,240+II),PSET,0,BF
  251. 10623  NEXT II
  252. 10630  SCREEN 1,0,1,0:INTERVAL ON
  253. 10640  SCREEN 0
  254. 10645  RETURN
  255. 10650 '
  256. 10700 *SEFFECT2'////////////////////////////////////////////////////////
  257. 10712  SCREEN 1,1,3,1:
  258. 10720  FOR II=240 TO 0 STEP -1:PALETTE 9,[II,II,II]
  259. 10721     LINE(0,240+II)-(639,240-II),PSET,1,B
  260. 10723  NEXT II
  261. 10730  MESN=10:GOSUB *MESDSP
  262. 10740  RETURN
  263. 10990 '
  264. 11000 *SNDMSG:'  SAVE "SNDMSG.SUB",A
  265. 11005  IF SNDMF=0 THEN RETURN
  266. 11010  '・・・・・・・・・・・・・・・・・  サウンドメッセージ実行サブルーチン  1989.02.04
  267. 11020  '                   入力=MESN (メッセージNo.)
  268. 11030  '
  269. 11070  IF MESN>36 THEN *RETURN_SNDMSG :'END
  270. 11080  RESTORE *MSGNAM
  271. 11090  FOR IMSG=1 TO MESN
  272. 11100    READ MSGD$
  273. 11110  NEXT IMSG
  274. 11120  MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
  275. 11130  LOAD@ MSGFN$,MSGD%
  276. 11140  PCMPLAY MSGD%:WAIT SWAIT\1+1
  277. 11150 *RETURN_SNDMSG :RETURN
  278. 11160 *MSGNAM :'////////// .SND File Name Data
  279. 11170 DATA "OHA1"   :'  1 おはよう
  280. 11180 DATA "KONN"   :'  2 こんにちわ
  281. 11190 DATA "KONBAN" :'  3 こんばんわ
  282. 11200 DATA "goyuku" :'  4 ごゆっくり
  283. 11210 DATA "GOKRO2" :'  5 ごくろうさま
  284. 11220 DATA "OTUKA"  :'  6 お疲れさま
  285. 11230 DATA "DOUZO"  :'  7 おまたせ
  286. 11240 DATA "ARIGA2" :'  8 ありがとう
  287. 11250 DATA "RUNRUN" :'  9 るんるん
  288. 11260 DATA "DAMEDE" :' 10 だめでしょう
  289. 11270 DATA "IIDE1"  :' 11 いいですか
  290. 11280 DATA "NANISI" :' 12 なにしてるの
  291. 11290 DATA "DAMEDA" :' 13 だめだめ
  292. 11300 DATA "OWARI"  :' 14 終わりました
  293. 11310 DATA "SIBA"   :' 15 しばらくお待ち下さい
  294. 11320 DATA "YOROSI" :' 16 よろしいですか
  295. 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
  296. 11340 DATA "ERANDE" :' 18 選んでください
  297. 11350 DATA "KAKNIN" :' 19 確認して下さい
  298. 11360 DATA "NYURYO" :' 20 入力してください
  299. 11370 DATA "IRA"    :' 21 いらっしゃいませ 
  300. 11380 DATA "OYASUM" :' 22 おやすみ
  301. 11390 DATA "ARIGA3" :' 23 ありがとうございました
  302. 11400 DATA "TYOTO"  :' 24 ちょっと待って
  303. 11410 DATA "DAMEYO" :' 25 駄目よ
  304. 11420 DATA "YAMETE" :' 26 やめて
  305. 11430 DATA "TIGAU"  :' 27 ちがうよ
  306. 11440 DATA "PINPON" :' 28 ぴんぽーん
  307. 11450 DATA "BUU"    :' 29 ぶー
  308. 11460 DATA "MOUII"  :' 30 もういいよう  
  309. 11470 DATA "DEKITA" :' 31 できたよー
  310. 11480 DATA "IIDE2"  :' 32 いいですか(2)
  311. 11490 DATA "YOSI"   :' 33 よしなさい
  312. 11500 DATA "OYOSI"  :' 34 およしなさい
  313. 11510 DATA "YAMENA" :' 35 やめなさい
  314. 11520 DATA "GOMEN"  :' 36 ごめん
  315. 11530 '                                    
  316. 12000 '////////// 年月日入力 & 曜日表示
  317. 12010 '                    
  318. 12045 *週検索
  319. 12050  DATA "SUN",2,"MON",7,"TUE",7,"WED",7,"THU",7,"FRI",7,"SAT",5
  320. 12060  GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
  321. 12080  RETURN
  322. 12090 '
  323. 12450 *WEEKN :'////////// 週NO.検索    'v1.3 bugfix 93.12.27
  324. 12460  U=0    :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN   Output; WK DN
  325. 12470  IF YR/4-INT(YR/4)=0 THEN U=1
  326. 12480  DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
  327. 12490  DATA 0,31,29,31,30,31,30,31,31,30,31,30,31
  328. 12500  IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
  329. 12505 'IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
  330. 12510  MDN=0:FOR IWEKN=1 TO MN:READ DN:MDN=MDN+DN:NEXT IWEKN:'1日までの日数
  331. 12515  READ MNDN                                              :'当月の日数
  332. 12516  IF DY>MNDN THEN DY=MNDN                                :'V1.3!
  333. 12520  YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
  334. 12530  WK=(YDN#/7-INT(YDN#/7))*7
  335. 12540  RETURN
  336. 12550 '
  337. 12600 *年月日変更:                     'v1.3 bugfix 93.12.27
  338. 12601  GOSUB *WEEKN
  339. 12602  DY=DY+DDEF
  340. 12604  IF DY>MNDN THEN DY=1     :MDEF=+1
  341. 12606  IF DY<1    THEN DY=31    :MDEF=-1
  342. 12610  MN=MN+MDEF
  343. 12620  IF MN>12   THEN MN=MN-12 :YDEF=+1
  344. 12630  IF MN<1    THEN MN=12+MN :YDEF=-1
  345. 12640  YR=YR+YDEF
  346. 12650  IF YR<0    THEN YR=10000+YR
  347. 12660  IF YR>9999 THEN YR=YR-10000
  348. 12665  GOSUB *WEEKN
  349. 12668  DY$=RIGHT$(STR$(100+DY),2)
  350. 12670  MN$=RIGHT$(STR$(100+MN),2)
  351. 12680  YR$=RIGHT$(STR$(10000+YR),4)
  352. 12690  RETURN
  353. 12695 '
  354. 12700 *本日の日付
  355. 12705  DEF FONT "システム   12ドット"
  356. 12710  TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
  357. 12720  IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
  358. 12730  TY$=RIGHT$(STR$(TY),4)
  359. 12740  TM$=MID$(DATE$,4,2):TM=VAL(TM$)
  360. 12750  TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
  361. 12760  YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
  362. 12770  TYMD$=TY$+"."+TM$+"."+TD$
  363. 12780  LINE(475,5)-(560,17),PSET,0,BF
  364. 12790  SYMBOL(476,6),TYMD$,.75!,.75!,7
  365. 12800  SYMBOL(542,6),WKM$,.75!,.75!,CW
  366. 12810  RETURN
  367. 12820 '
  368. 13000 '////////////////////////////////////////////////////////////////////
  369. 13001 ' LKEYIN   v1.1a 全角文字移動改良                1993.02.12 T.Komura
  370. 13002 '--------- v1.2  挿入モードの変更他全面bugFIX    1993.08.04 T.Komura
  371. 13003 '          v2.0  グラフィックモード12dot用に改造 1994.07.30 T.Komura
  372. 13004 '          v2.1  マルチカラムに改造              1994.09.02 T.Komura
  373. 13005 '          v2.2  編集文字を初期表示するように改造1995.04.29 T.Komura
  374. 13006 '
  375. 13010 *LKEYIN  :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
  376. 13020 '   入力 = LX,LY : 表示開始座標      LG    : 行数     
  377. 13030 '          L$(ii): 初期文字列        LP    : 行ピッチ       
  378. 13040 '          LC    : 表示文字色        lb    : 非編集行文字色
  379. 13050 '          LL    : 最大文字数        cbc    : 背景色
  380. 13060 '          LINS  : 挿入モード=1  出力=L$(ii) : 入力後の文字列
  381. 13070 '         
  382. 13080  LCSRCL=3:LLINCL=4
  383. 13090  DEF FONT "システム   12ドット"
  384. 13100 '           CR   MR   ML  INS  DEL   BS  CAN
  385. 13120  CONSOLE 0,24,2
  386. 13130  CC$=CHR$(&H0D,&H1E,&H1F,&H1C,&H1D,&H12,&H7F,&H08,&H18)
  387. 13140 ' LMG$=SPACE$(LL):LMGD$=SPACE$(LL)          :'2.1
  388. 13150  LA$=INKEY$:IF LA$<>"" THEN 13150
  389. 13160  IF LINS=1 THEN CWDT=1 ELSE CWDT=5
  390. 13170  LCSR=0:LGC=1                               :'v2.1
  391. 13180  LINE(LX,LY)-(LX+LL*6+1,LY+11),PSET,%CBC,BF :'v2.2
  392. 13185  GET@A (LX,LY)-(LX+LL*6+1,LY+13),LMB#       :'v2.0
  393. 13190  FOR LGII=1 TO LG:LXX=LX:LYY=LY+(LGII-1)*LP :'v2.1・・・・ 初期文字列表示
  394. 13200   PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB#    :'v2.1
  395. 13210   SYMBOL(LXX,LYY),L$(LGII),.75!,.75!,LB     :'v2.1
  396. 13220  NEXT LGII                                  :'v2.1
  397. 13230 *SETLG             :'----------行セット     :'v2.1
  398. 13240  LYY=LY+(LGC-1)*LP :LM$=L$(LGC)             :'v2.1
  399. 13250   SYMBOL(LXX,LYY),L$(LGC),.75!,.75!,LC      :'v2.1
  400. 13260  LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.1
  401. 13270  LCSRX=LCSR:GOSUB *LCSRDX
  402. 13280  LMX$=LEFT$(LM$+SPACE$(LL),LL)
  403. 13290  GOSUB *LMREAD
  404. 13300  IF LMGB$="1" THEN GOSUB *LCSRDEC
  405. 13310 *IN1C:'                                  ・・・・・・・・・・ 1 文字入力
  406. 13320  LA$=INKEY$:IF LA$="" THEN 13320
  407. 13330  ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
  408. 13340  IF CLA=0 THEN 13360
  409. 13350  ON CLA GOTO *CR,*MU,*MD,*MR,*ML,*INS,*DEL,*BS,*CAN
  410. 13360  IF KANF=1 THEN *KANJI
  411. 13370  IF ALA<&H20 THEN BEEP:GOTO *IN1C
  412. 13380  IF ALA>=&H20 AND ALA<&H80 THEN *ANK
  413. 13390  IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
  414. 13400  GOTO *KANJI
  415. 13410 *ANK :'                                  ・・・・・・・・・・ ANK 文字入力
  416. 13420  IF LINS=1 THEN 13440
  417. 13430  MID$(LMX$,LCSR+1,1)=LA$:GOTO 13450
  418. 13440  LMX$=LEFT$(LMX$,LCSR)+LA$+RIGHT$(LMX$,LL-LCSR)
  419. 13450  GOSUB *LCSRINC
  420. 13460  GOSUB *LMREAD1:GOSUB *LMXDSP
  421. 13470  GOTO *IN1C
  422. 13480 *KANJI :'                                ・・・・・・・・・・ 漢字文字入力
  423. 13490  ON KANF+1 GOTO 13500,13530
  424. 13500  KANF=1:KANW$="":KANW$=LA$
  425. 13510    IF LCSR+1>=LL THEN KANF=0:BEEP
  426. 13520    GOSUB *LCSRD:GOTO *IN1C
  427. 13530  KANF=0:KANW$=KANW$+LA$
  428. 13540    IF LINS=1 THEN 13560
  429. 13550    MID$(LMX$,LCSR+1,2)=KANW$:GOTO 13570
  430. 13560    LMX$=LEFT$(LMX$,LCSR)+KANW$+RIGHT$(LMX$,LL-LCSR)
  431. 13570    GOSUB *LCSR2INC
  432. 13580    GOSUB *LMREAD1:GOSUB *LMXDSP
  433. 13590  GOTO *IN1C
  434. 13600 *CR :GOSUB *LMREAD:GOSUB *LCSRDX         '////////// End
  435. 13610   LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF     :'v2.0 :'v2.1
  436. 13620   CONSOLE 0,24,0
  437. 13630 RETURN:'----------------------------------------------------------
  438. 13640 *MU :GOSUB *LMREAD2                      '////////// up   :v2.1
  439. 13645 *MU2:GOSUB *LMBDSP:LGC=LGC-1:IF LGC<1 THEN LGC=1
  440. 13655      GOTO *SETLG
  441. 13660 *MD :GOSUB *LMREAD2                      '////////// down :v2.1
  442. 13665 *MD2:GOSUB *LMBDSP:LGC=LGC+1:IF LGC>LG THEN LGC=LG
  443. 13675      GOTO *SETLG
  444. 13680 *MR :GOSUB *LMREAD2                      '////////// Right
  445. 13685      IF LMGF$="1" THEN GOSUB *LCSR2INC:GOTO *MUD    :'v2.1
  446. 13690                        GOSUB *LCSRINC :GOTO *MUD    :'v2.1
  447. 13695 *ML :GOSUB *LMREAD2                      '////////// Left
  448. 13700      IF LMGB$="2" THEN GOSUB *LCSR2DEC:GOTO *MUD    :'v2.1
  449. 13705                        GOSUB *LCSRDEC :GOTO *MUD    :'v2.1
  450. 13710 *MUD:IF LCSC=0  THEN GOTO *IN1C          '////////// line chg.ctrl:'v2.1
  451. 13715      IF LCSC=+1 THEN GOSUB *LMREAD2:LCSR=0 :GOTO *MD2
  452. 13720      IF LCSC=-1 THEN GOSUB *LMREAD2:LCSR=LL:GOTO *MU2
  453. 13725 *INS:GOSUB *LCSRDX:LINS=1-LINS           '////////// Insert
  454. 13730      IF LINS=1 THEN CWDT=1 ELSE CWDT=5
  455. 13735      GOSUB *LCSRDX                    :GOTO *IN1C
  456. 13740 *DEL:GOSUB *LMREAD:LMX$=LEFT$(LMG$,LCSR) '////////// Delete
  457. 13745      IF LMGF$="1" THEN LDEF=2 ELSE LDEF=1
  458. 13750      LMX$=LMX$+MID$(LMG$,LCSR+LDEF+1,LL-LCSR-LDEF)+"  "
  459. 13755      GOSUB *LMREAD:GOSUB *LMXDSP      :GOTO *IN1C
  460. 13760 *BS :GOSUB *LMREAD                       '////////// BackSpace
  461. 13765      IF LCSR=0 THEN GOTO *IN1C
  462. 13770      IF LMGB$="2" THEN GOSUB *LCSR2DEC:LDEF=2:GOTO 13780
  463. 13775                        GOSUB *LCSRDEC :LDEF=1:GOTO 13780
  464. 13780      LMX$=LEFT$(LMG$,LCSR)+RIGHT$(LMG$,LL-LCSR-LDEF)+"  "
  465. 13785      GOSUB *LMREAD:GOSUB *LMXDSP      :GOTO *IN1C
  466. 13790 *CAN :LMX$=SPACE$(LL)                    '////////// Clear
  467. 13795      GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
  468. 13800      GOSUB *LMREAD                    :GOTO *IN1C
  469. 13805 *LMREAD:                                 '////////// Disp Char Read 
  470. 13810      LMGFX$=MID$(LMGDX$,LCSR+1,1)
  471. 13815      IF LMGFX$="2" OR LMGF$="2" THEN MID$(LMX$,LCSR+1,1)=" "
  472. 13820 *LMREAD1:LMGD$=""
  473. 13825          FOR II=1 TO KLEN(LMX$)
  474. 13830            LMG=KTYPE(LMX$,II)
  475. 13835            IF LMG=0 THEN LMD$="0" ELSE LMD$="12"
  476. 13840            LMGD$=LMGD$+LMD$
  477. 13845          NEXT II
  478. 13850          IF LEN(LMGD$)<=LL THEN 13860
  479. 13855          LMGD$=LEFT$(LMGD$,LL):LMX$=LEFT$(LMX$,LL)
  480. 13860          IF RIGHT$(LMGD$,1)<>"1" THEN 13870
  481. 13865          MID$(LMGD$,LL,1)="0":MID$(LMX$,LL,1)=" "
  482. 13870 *LMREAD2:LMGF$=MID$(LMGD$,LCSR+1,1)
  483. 13875          IF LCSR=0 THEN LMGB$="0" ELSE LMGB$=MID$(LMGD$,LCSR,1)
  484. 13880          LMG$=LMX$:LMGDX$=LMGD$:L$(LGC)=LMG$
  485. 13885          RETURN
  486. 13890 *LCSRD :LXC=(LX+6*LCSR ):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Disp
  487. 13895 *LCSRDX:LXC=(LX+6*LCSRX):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Erace
  488. 13900         LCSRX=LCSR:RETURN
  489. 13905 *LCSRL :LINE(LXC,LYC+0)-(LXC+CWDT,LYC+12),XOR,LCSRCL,BF:RETURN
  490. 13910 *LCSRINC :LCSC=0:LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1:LCSC=+1
  491. 13915           GOSUB *LCSRD:RETURN
  492. 13920 *LCSR2INC:LCSC=0:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2:LCSC=+1
  493. 13925           GOSUB *LCSRD:RETURN
  494. 13930 *LCSRDEC :LCSC=0:LCSR=LCSR-1:IF LCSR<0 THEN LCSR=0     :LCSC=-1
  495. 13935           GOSUB *LCSRD:RETURN
  496. 13940 *LCSR2DEC:LCSC=0:LCSR=LCSR-2:IF LCSR<0 THEN LCSR=LCSR+2:LCSC=-1
  497. 13945           GOSUB *LCSRD:RETURN
  498. 13950 *LMXDSP  :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB#    :'v2.0   :'v2.1
  499. 13955           LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF   :'v2.0
  500. 13960           SYMBOL(LX,LYY),LMX$,.75!,.75!,LC
  501. 13965           GOSUB *LCSRDX:RETURN
  502. 13970 *LMBDSP  :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB#    :'v2.1
  503. 13975           SYMBOL(LX,LYY),LMX$,.75!,.75!,LB:RETURN   :'v2.1
  504. 13980 '-------------------------------------------------------------------
  505. 14000 'マウス,ウインドウ関係サブルーチン集   v1.0 1995.05.14
  506. 14010 '--------------------------------------------------
  507. 14020 '
  508. 14030 'マウスカーソル形状セット   v1.0 1994.02.13
  509. 14040 *MCDSET
  510. 14050  MOUSE 2,MCAND$(MCN),MCDOT$(MCN),MC_X(MCN),MC_Y(MCN)
  511. 14060  RETURN
  512. 14070 *MCREAD
  513. 14080  RESTORE *MCDATA
  514. 14090  FOR II=1 TO 3
  515. 14100    FOR JJ=1 TO 32:MCAND$(II)="":MCDOT$(II)="":NEXT JJ
  516. 14110    READ MC_X(II),MC_Y(II)
  517. 14120    FOR JJ=1 TO 32:READ MCAND:MCAND$(II)=MCAND$(II)+CHR$(MCAND):NEXT JJ
  518. 14130    FOR JJ=1 TO 32:READ MCDOT:MCDOT$(II)=MCDOT$(II)+CHR$(MCDOT):NEXT JJ
  519. 14140  NEXT II
  520. 14150  RETURN
  521. 14160 *MCDATA
  522. 14170 '指 ////////////////////////////////////////
  523. 14171 DATA 0,0
  524. 14172 DATA &H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H83,&HFF' and
  525. 14173 DATA &HC0,&H3F,&HE0,&H07,&HF0,&H01,&HF8,&H00
  526. 14174 DATA &HF0,&H00,&HE0,&H00,&HE0,&H00,&HE0,&H00
  527. 14175 DATA &HE0,&H00,&HF0,&H00,&HF8,&H00,&HFC,&H00
  528. 14176 DATA &H00,&H00,&H60,&H00,&H30,&H00,&H18,&H00' dot
  529. 14177 DATA &H0C,&H00,&H06,&H80,&H03,&H50,&H01,&HAA
  530. 14178 DATA &H05,&HFE,&H04,&HFE,&H06,&HFE,&H07,&HFE
  531. 14179 DATA &H03,&HFF,&H01,&HFF,&H00,&H7F,&H00,&H1F
  532. 14180 'コーヒー///////////////////////////////////
  533. 14181 DATA 7,7
  534. 14182 DATA &HFF,&HFF,&HF2,&H4F,&HE4,&H9F,&HE4,&H9F' and
  535. 14183 DATA &HE6,&H1F,&HF2,&H4F,&HC0,&H07,&HC0,&H01
  536. 14184 DATA &HC0,&H06,&HC0,&H06,&HC0,&H05,&HC0,&H03
  537. 14185 DATA &HE0,&H0F,&H80,&H01,&HC0,&H03,&HE0,&H07
  538. 14186 DATA &H00,&H00,&H04,&H90,&H09,&H20,&H09,&H20' dot
  539. 14187 DATA &H08,&HA0,&H04,&H90,&H00,&H00,&H1F,&HF0
  540. 14188 DATA &H15,&HF0,&H13,&H30,&H15,&H30,&H1F,&HF0
  541. 14189 DATA &H0F,&HE0,&H00,&H00,&H1F,&HF8,&H00,&H00
  542. 14190 '待った //////////////////////////////////////
  543. 14191 DATA 7,7
  544. 14192 DATA &HF0,&H1F,&HC0,&H07,&H80,&H03,&H80,&H03' and
  545. 14193 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H00,&H01
  546. 14194 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H80,&H03
  547. 14195 DATA &H80,&H03,&HC0,&H07,&HF0,&H1F,&HFF,&HFF
  548. 14196 DATA &H00,&H00,&H00,&H00,&H07,&HC0,&H1F,&H80' dot
  549. 14197 DATA &H1F,&H00,&H3E,&H08,&H3C,&H18,&H38,&H38
  550. 14198 DATA &H30,&H78,&H20,&HF8,&H01,&HF0,&H03,&HF0
  551. 14199 DATA &H07,&HC0,&H00,&H00,&H00,&H00,&H00,&H00
  552. 14200 '
  553. 14210 *MCDRAG 'ドラッグ -----------------------------------------------
  554. 14220  MOUSE 1,X_M,Y_M,1                            :'現在位置にカーソルを設定
  555. 14225  MD_XB1=W_X1(G):MD_YB1=W_Y1(G) :MD_XC1=W_X1(G):MD_YC1=W_Y1(G) :'旧ウインドウ座標保持
  556. 14230  MD_XB2=W_X2(G):MD_YB2=W_Y2(G) :MD_XC2=W_X2(G):MD_YC2=W_Y2(G) :'旧ウインドウ座標保持
  557. 14235  GET@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SW#
  558. 14238  X1=X_M-W_X1(G)+W_XA(G):X2=X_M+W_XB(G)-W_X2(G):'最大移動域の設定
  559. 14239  Y1=Y_M-W_Y1(G)+W_YA(G):Y2=Y_M+W_YB(G)-W_Y2(G):'
  560. 14240  MOUSE 4,X1,Y1,X2,Y2                          :'最大移動域の設定
  561. 14245  GOSUB *MD_WLINED
  562. 14250  IF MOUSE(2,0)=-1 THEN 14245                  :'枠移動
  563. 14255   LINE(MD_XC1,MD_YC1)-(MD_XC2,MD_YC2),XOR,4,B,&HCCCC     :'枠線消去
  564. 14260  PUT@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SB#      :'旧ウインドウ背景表示
  565. 14265  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#  :'新ウインドウ背景保持
  566. 14270  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SW#  :'新ウインドウ描画
  567. 14275  MOUSE 4,0,0,639,479:WAIT SWAIT\4+1:RETURN
  568. 14280 *MD_WLINED
  569. 14285  MD_X_M=MOUSE(9) :MD_Y_M=MOUSE(10)                :'移動量取得
  570. 14290  W_X1(G)=W_X1(G)+(MD_X_M):W_Y1(G)=W_Y1(G)+(MD_Y_M):'新座標計算
  571. 14295  W_X2(G)=W_X2(G)+(MD_X_M):W_Y2(G)=W_Y2(G)+(MD_Y_M)
  572. 14300  LINE(MD_XC1 ,MD_YC1 )-(MD_XC2 ,MD_YC2 ),XOR,4,B,&HCCCC  :'枠線移動
  573. 14305  LINE(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),XOR,4,B,&HCCCC
  574. 14310  MD_XC1=W_X1(G):MD_YC1=W_Y1(G)
  575. 14315  MD_XC2=W_X2(G):MD_YC2=W_Y2(G)
  576. 14320  RETURN
  577. 14400 '------------------------------------------------------------------
  578. 14405 *ボタン座標読み取り
  579. 14410  RESTORE *ボタン座標:READ SWGN
  580. 14415  FOR G=1 TO SWGN
  581. 14420    READ SWN(G), W_X1(G),W_X2(G),W_Y1(G),W_Y2(G), W_XA(G),W_XB(G),W_YA(G),W_YB(G)
  582. 14425    FOR B=1 TO SWN(G):READ B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B):NEXT B
  583. 14430  NEXT G
  584. 14435  RETURN
  585. 14500 '-----------------------------------------------------------------
  586. 14505 *BTN_ONOFF:'ボタンON_OFF表示
  587. 14510  IF BST(G,B)=1 THEN BSC=15:BSB=1:GOTO 14520
  588. 14515                     BSC=1:BSB=15
  589. 14520   X1=W_X1(G)+B_X1(G,B):X2=W_X1(G)+B_X2(G,B)
  590. 14521   Y1=W_Y1(G)+B_Y1(G,B):Y2=W_Y1(G)+B_Y2(G,B)
  591. 14522   CONNECT(X1,Y2)-(X2,Y2)-(X2,Y1),%BSC,PSET
  592. 14523   CONNECT(X1,Y2)-(X1,Y1)-(X2,Y1),%BSB,PSET
  593. 14530  IF BSNDOFF=1 THEN 14540 :'                 WAIT SWAIT\10+1:GOTO 14540
  594. 14535  IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT SWAIT\5+1
  595. 14540  BSNDOFF=0:RETURN
  596. 14600 '-----------------------------------------------------------------
  597. 14610 *MCSELECT:'マウスボタン選択
  598. 14620  SWERC=0:SWNO=0                         :'リセット
  599. 14630 *クリック待ち
  600. 14640  IF MOUSE(2,0)=-1 THEN 14680            :'左クリック入力待ち
  601. 14650  IF MOUSE(2,1)=-1 THEN SWNO=-1:RETURN   :'右クリックで終了
  602. 14660  IF MCKEY=1 THEN GOTO 14830             :'MCKEY=1: マウススキャン中断、キー入力受付
  603. 14670  GOTO *クリック待ち
  604. 14680  X_M=MOUSE(4,0):Y_M=MOUSE(5,0)          :'座標取得
  605. 14690  FOR IMS=1 TO SWN(G)                    :'ボタン座標判定
  606. 14700    IF (X_M>W_X1(G)+B_X1(G,IMS)) AND (X_M<W_X1(G)+B_X2(G,IMS)) ELSE 14730
  607. 14710    IF (Y_M>W_Y1(G)+B_Y1(G,IMS)) AND (Y_M<W_Y1(G)+B_Y2(G,IMS)) ELSE 14730
  608. 14720    SWNO=IMS:IMS=SWN(G)+1
  609. 14730  NEXT IMS
  610. 14735  WAIT SWAIT\8+1 'FOR II=1 TO 500:NEXT II
  611. 14740  IF (SWPASS=1) OR (SWNO<>0) THEN 14830
  612. 14750  IF SWNO=0 THEN
  613. 14760     GOSUB *MCMIS:SWERC=SWERC+1           '誤指定警告表示
  614. 14770     IF SWERC>5 THEN
  615. 14780       MCN=3:GOSUB *MCDSET:MESN=12:GOSUB *SNDMSG            '誤指定警告音声案内
  616. 14790       MCN=1:GOSUB *MCDSET
  617. 14800     ENDIF
  618. 14810  ENDIF
  619. 14820  GOTO *クリック待ち
  620. 14830  SWPASS=0:SW1T=0:MCKEY=0
  621. 14840  RETURN
  622. 14850 *MCMIS
  623. 14860  MCN=3:GOSUB *MCDSET:WAIT SWAIT\3+1:MCN=1:GOSUB *MCDSET
  624. 14870  RETURN
  625. 14880 '
  626. 14890 '
  627. 15000 '
  628. 15010 '  SAVE"TCLOCK.sub"             :'   組み込み型 アナログ時計 V1.1
  629. 15020 '                                       1991.05 T.KOMURA 
  630. 15030 '--------------------------------------------------------------------
  631. 15040 '
  632. 15220 *時計表示:'///////////////////////////////////
  633. 15230  XCLK0=579:YCLK0=11:CLKR=9:PI=3.1415!
  634. 15240  TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
  635. 15250  TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
  636. 15260  TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
  637. 15270  THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
  638. 15280  GOSUB *短針表示
  639. 15290  GOSUB *長針表示
  640. 15300  GOSUB *秒針表示
  641. 15305  IF DCLOCKF=1 THEN GOSUB *DCLOCKD
  642. 15310  CLOCKINIT=1:DATX$=DATE$
  643. 15320  RETURN
  644. 15330 '
  645. 15340 *短針表示
  646. 15350  XHD1=XCLK0+(CLKR*.6!)*SIN(HRR):XHD2=XCLK0
  647. 15360  YHD1=YCLK0-(CLKR*.6!)*COS(HRR):YHD2=YCLK0
  648. 15370  IF CLOCKINIT=0 THEN 15400
  649. 15380  IF SCR<>0 THEN 15420
  650. 15390  LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
  651. 15400  LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
  652. 15410  XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
  653. 15420  RETURN
  654. 15430 *長針表示
  655. 15440  XMD1=XCLK0+(CLKR*.8!)*SIN(MNR):XMD2=XCLK0
  656. 15450  YMD1=YCLK0-(CLKR*.8!)*COS(MNR):YMD2=YCLK0
  657. 15460  IF CLOCKINIT=0 THEN 15490
  658. 15470  IF SCR<>0 THEN 15510
  659. 15480  LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
  660. 15490  LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
  661. 15500  XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
  662. 15510  RETURN
  663. 15520 *秒針表示
  664. 15530  XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
  665. 15540  YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
  666. 15550  IF CLOCKINIT=0 THEN 15570
  667. 15560  LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
  668. 15570  LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
  669. 15580  XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
  670. 15590  RETURN
  671. 15600 '////////////////////////////////////////////////////////////////////
  672. 15605 ' DIGITAL CLOCK v1.0 1995.05.24 T.Komura
  673. 15610 *DCLOCKREAD:'プログラム先頭で実施
  674. 15615  RESTORE *DCLOCKDATA
  675. 15620  FOR DGII=0 TO 9:FOR DGN=1 TO 7:READ DGP(DGII,DGN):NEXT:NEXT 
  676. 15625  FOR DGII=1 TO 9:READ DGX(DGII),DGY(DGII):NEXT
  677. 15630  FOR DGII=1 TO 4:READ DGO(DGII):NEXT
  678. 15635  RETURN
  679. 15640 *DGCLOCK:'デジタル時計 -------------------------------
  680. 15645  G=6:SWNOX=SWNO:DGINIT=0:DGFC=15:DGBC=1
  681. 15650  GOSUB *DCLOCKLOAD:GOSUB *DCLOCKD:DCLOCKF=1
  682. 15655 *DGMCSEL
  683. 15660  GOSUB *MCSELECT:'マウスボタン選択
  684. 15665  IF SWNO=0 THEN *DGMCSEL
  685. 15670  IF SWNO<0 THEN SWNO=1:'右クリックで終了
  686. 15675 '             end  drag
  687. 15680  ON SWNO GOTO *DGS01,*DGS02 
  688. 15685 *DGS02:'drag
  689. 15690  DCLOCKF=0
  690. 15692  GOSUB *MCDRAG
  691. 15694  DCLOCKF=1
  692. 15695  GOTO *DGMCSEL
  693. 15700 *DGS01:'end
  694. 15705  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  695. 15710  DCLOCKF=0
  696. 15715  GOSUB *DCLOCKCLR
  697. 15720  SWNO=SWNOX
  698. 15725  RETURN
  699. 15730 *DCLOCKLOAD
  700. 15735  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  701. 15740  MOUSE 1,,,0
  702. 15745  LOAD@ TIFDRV$+"\dclock.tif",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
  703. 15750  MOUSE 1,,,1:RETURN
  704. 15760 *DCLOCKCLR
  705. 15765  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  706. 15770  RETURN
  707. 15775 '
  708. 15780 *DCLOCKD
  709. 15785  IF DGINIT=1 THEN 15795
  710. 15790  FOR DGII=1 TO 4:DGM(DGII)=10:NEXT DGII:DGINIT=1
  711. 15795  DG(1)=VAL(MID$(TIME$,1,1)):DG(2)=VAL(MID$(TIME$,2,1))
  712. 15800  DG(3)=VAL(MID$(TIME$,4,1)):DG(4)=VAL(MID$(TIME$,5,1))
  713. 15805  DGPT=1-DGPT
  714. 15810  FOR DGII=1 TO 4
  715. 15815    IF DG(DGII)=DGM(DGII) THEN 15840
  716. 15820    FOR DGJJ=1 TO 7
  717. 15825      IF DGP(DG(DGII),DGJJ)=1 THEN DGC=DGFC ELSE DGC=DGBC
  718. 15826      IF DGII=1 AND DG(1)=0 THEN DGC=DGBC
  719. 15830      PAINT(W_X1(G)+DGX(DGJJ)+DGO(DGII),W_Y1(G)+DGY(DGJJ)),%DGC,0
  720. 15835    NEXT DGJJ
  721. 15840  NEXT DGII
  722. 15841      IF DGPT=1 THEN DGC=10 ELSE DGC=DGBC
  723. 15842      PAINT(W_X1(G)+DGX(8),W_Y1(G)+DGY(8)),%DGC,0
  724. 15843      PAINT(W_X1(G)+DGX(9),W_Y1(G)+DGY(9)),%DGC,0
  725. 15845  FOR DGII=1 TO 4:DGM(DGII)=DG(DGII):NEXT DGII'
  726. 15850  RETURN
  727. 15855 '
  728. 17000 '////////////////////////////////////////////////////////////////////
  729. 17002 ' GFS.SUB  v1.0 1994.11.02 T.Komura
  730. 17004 '          v1.2 1995.05.25 for HK2
  731. 17006 'CLEAR ,,,,1024,300*1024:LOADM "d:\fb386\work\sub\DOS.REX",0
  732. 17008 'GOSUB *F_初期化:DIM LMB#(1000)
  733. 17010 'W_X1(g)=0:w_y1(g)=0:GOSUB *F_ファイルセレクタ
  734. 17012 'output   ・F_FILEDRV$ ・F_FILEPATH$ ・F_FILENAME$
  735. 17014 '
  736. 17016 *F_初期化:'/////////////////////////////////////////////////////
  737. 17018  G=2:DEFLNG F :DEF FONT "システム   12ドット"
  738. 17020  SEACHICNSEL&=0:MEMCPY&=5   :GETFREESPACE&=10:ISFIXED&=15:ISEXIST&=20
  739. 17022  FINDFIRST&=25 :FINDNEXT&=30:GETDRV&=35      :GETDIR&=40 :F_CTRLB=11
  740. 17024  F_XMIN=0:F_YMIN=0:F_XMAX=639:F_YMAX=479
  741. 17026  DIM F_DRV(26)  ,F_NAME$(0) ,F_SIZE&(0) ,F_ATTR&(0),F_DATE$(0)
  742. 17028  DIM F_XB1(30),F_YB1(30),F_XB2(30),F_YB2(30):'20
  743. 17030  DIM F_ICN(9),F_PAT(((32*32/8)+3)/4+1),F_PAT1(((32*32/8)+3)/4+1)
  744. 17032  DIM F_PC#(2300)
  745. 17034  DIM F_DVS#(64*10)
  746. 17036  F_NUM=0:F_WLD$="":F_STR$=SPACE$(100)
  747. 17038  F_ICN_SEC&=CALLM(SEACHICNSEL&)
  748. 17040  RESTORE *F_アイコンデータ:FOR F_I=0 TO 9:READ F_ICN(F_I):NEXT
  749. 17042  RETURN
  750. 17044 *F_アイコンデータ
  751. 17046  DATA 70,0,72,77,0,77,76,78,69,79
  752. 17048 '-----------------------------------------------------------------------------------
  753. 17050 '
  754. 17052 *F_ファイルセレクタ:'main routine //////////////////////////////////////////////////
  755. 17054 '
  756. 17055  F_TOP=0:F_DCI=0:F_SPASS=0:SWNOX=SWNO
  757. 17056  F_FILENAME$="" :F_FILEPATH$="":F_FILEDRV$=""
  758. 17058  MCN=1:GOSUB *MCDSET:GOSUB *F_画面表示
  759. 17062  GOSUB *F_ドライブ情報取得:GOSUB *F_ドライブ状況表示
  760. 17064  GOSUB *F_ファイル情報取得:GOSUB *F_ファイル名表示
  761. 17066 *F_LOOP
  762. 17068  GOSUB *MCSELECT:'マウスボタン選択
  763. 17070  IF SWNO<0       THEN SWNO=1  :'右クリック
  764. 17072  IF SWNO>F_CTRLB THEN GOTO *F_L1
  765. 17074  '             exit  prev  curr  next  dup   lu    ld    exec  can   drug   key
  766. 17076  ON SWNO GOTO *F_L9,*F_L2,*F_L3,*F_L4,*F_L5,*F_L6,*F_L7,*F_L8,*F_L9,*F_L10,*F_L11
  767. 17078 *F_L1 'リスト -------------------------------------------------- 
  768. 17080  F_I=F_TOP+SWNO-F_CTRLB:B=SWNO:IF F_I>F_NUM GOTO *F_LOOP
  769. 17082  IF F_ATTR&(F_I) = &H10 THEN 
  770. 17084    F_CMD$="cd "+F_NAME$(F_I):SHELL F_CMD$:F_L1F=1:GOTO *F_L3A
  771. 17086  ELSE
  772. 17087    LINE(W_X1(G)+B_X1(G,B),W_Y1(G)+B_Y1(G,B))-(W_X1(G)+B_X2(G,B),W_Y1(G)+B_Y2(G,B)),XOR,7,BF
  773. 17088    F_FILENAME$=LEFT$(F_NAME$(F_I)+SPACE$(14),12)
  774. 17090    F_X=W_X1(G)+88:F_Y=W_Y1(G)+200:F_M$=F_FILENAME$
  775. 17092    LINE(F_X,F_Y)-(F_X+6*12,F_Y+12),PSET,%4,BF
  776. 17094    SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0:WAIT SWAIT/2
  777. 17095    LINE(W_X1(G)+B_X1(G,B),W_Y1(G)+B_Y1(G,B))-(W_X1(G)+B_X2(G,B),W_Y1(G)+B_Y2(G,B)),XOR,7,BF
  778. 17096  ENDIF
  779. 17098  GOTO *F_LOOP
  780. 17100 *F_L2 '< -------------------------------------------------------
  781. 17102  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  782. 17104  IF F_DRV(0)-1<>0 THEN F_DRV(0)=F_DRV(0)-1 ELSE F_DRV(0)=26
  783. 17106  IF F_DRV(F_DRV(0))<0 THEN 17104
  784. 17108  GOSUB *DRVDISP: F_BTN_ATR=MOUSE(3,0):F_BTN_ATR=0:F_I=0 
  785. 17112  WHILE F_BTN_ATR=0 AND F_I<130:F_I=F_I+1:F_BTN_ATR=MOUSE(3,0):WAIT 1:WEND
  786. 17114  IF F_BTN_ATR=0 THEN *F_L3A ELSE *F_L3B
  787. 17116 *F_L3 'DRV -----------------------------------------------------
  788. 17118  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  789. 17119 *F_L3A :F_CMD$=CHR$(&H40+F_DRV(0))+":":SHELL F_CMD$:GOSUB *F_ドライブ状況表示
  790. 17122         F_TOP=0:GOSUB *F_ファイル情報取得:GOSUB *F_ファイル名表示
  791. 17124 *F_L3B :IF F_L1F=1 THEN F_L1F=0            :GOTO *F_LOOP
  792. 17125         B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF :GOTO *F_LOOP
  793. 17128 *F_L4 '> -------------------------------------------------------
  794. 17130  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  795. 17132  IF F_DRV(0)+1<>27 THEN F_DRV(0)=F_DRV(0)+1 ELSE F_DRV(0)=1
  796. 17134  IF F_DRV(F_DRV(0))<0 THEN 17132
  797. 17136  GOSUB *DRVDISP: F_BTN_ATR=MOUSE(3,0):F_BTN_ATR=0:F_I=0
  798. 17140  WHILE F_BTN_ATR=0 AND F_I<130:F_I=F_I+1:F_BTN_ATR=MOUSE(3,0):WAIT 1:WEND
  799. 17142  IF F_BTN_ATR=0 THEN *F_L3A ELSE *F_L3B
  800. 17144 *F_L5 '親 ------------------------------------------------------
  801. 17146  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  802. 17148  CALLM GETDIR&,0,VARPTR(F_STR$)
  803. 17150  IF LEFT$(F_STR$,INSTR(F_STR$,CHR$(0)))=CHR$(0) THEN 17154
  804. 17152  SHELL "cd .."
  805. 17154  GOTO *F_L3A
  806. 17158 *F_L6 '↑ ------------------------------------------------------
  807. 17160  B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
  808. 17162  IF F_TOP=0           THEN 17166 ELSE F_TOP=F_TOP-1
  809. 17164  GOSUB *F_下シフト:F_I=1 :GOSUB *F_指定行表示
  810. 17166  B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF        :GOTO *F_LOOP
  811. 17170 *F_L7 '↓ ------------------------------------------------------
  812. 17172  B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
  813. 17174  IF F_TOP+1>=F_NUM-10 THEN 17178 ELSE F_TOP=F_TOP+1
  814. 17176  GOSUB *F_上シフト:F_I=10:GOSUB *F_指定行表示
  815. 17178  B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF        :GOTO *F_LOOP
  816. 17182 *F_L8 '実行 ----------------------------------------------------
  817. 17184  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  818. 17186 ' IF F_FILENAME$="" THEN BST(G,B)=0:GOSUB *BTN_ONOFF:GOTO *F_LOOP
  819. 17188  CALLM GETDIR&,0,VARPTR(F_STR$)
  820. 17190  F_FILEPATH$="\"+LEFT$(F_STR$,INSTR(F_STR$,CHR$(0))-1)
  821. 17192  F_FILEDRV$=CHR$(&H40+F_DRV(0))            :GOTO *F_BYE
  822. 17196 *F_L9 '取消 ----------------------------------------------------
  823. 17198  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  824. 17200  F_FILENAME$="":F_FILEPATH$="":F_SPASS=1   :GOTO *F_BYE
  825. 17202 *F_L10 'ドラッグ -----------------------------------------------
  826. 17204  GOSUB *MCDRAG                             :GOTO *F_LOOP
  827. 17208 *F_L11 '文字 ---------------------------------------------------
  828. 17210  LX=W_X1(G)+88:LY=W_Y1(G)+200:LL=12:LG=1:LP=1:LC=4:CBC=4
  829. 17212  L$(1)=F_FILENAME$:LINS=1:GOSUB *LKEYIN
  830. 17214  F_FILENAME$=L$(1):SYMBOL(LX,LY),F_FILENAME$,.75!,.75!,0
  831. 17218  GOTO *F_LOOP
  832. 17220 *F_BYE '--------------------------------------------------------
  833. 17222  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  834. 17223  SWNO=SWNOX
  835. 17224 RETURN
  836. 17226 *F_画面表示'////////////////////////////////////////
  837. 17228  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  838. 17230  MOUSE 1,,,0:LOAD@ TIFDRV$+"\hk2fs.tif",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
  839. 17231  SYMBOL(W_X1(G)+91,W_Y1(G)+4),F_SELMES$,.75!,.75!,1,,,1
  840. 17232  FOR F_II=0 TO 9
  841. 17234    X1=W_X1(G)+96+(F_II MOD 5)*33:X2=X1+31 :Y1=W_Y1(G)+51+(F_II\5)*33:Y2=Y1+31
  842. 17238    GET@A(X1,Y1)-(X2,Y2),F_DVS#,64*F_II
  843. 17240  NEXT F_II
  844. 17242  RETURN
  845. 17244 *F_ドライブ状況表示:'///////////////////////////////
  846. 17246  GOSUB *DRVDISP
  847. 17248  F_FREE=CALLM(GETFREESPACE&,0)
  848. 17250  IF F_FREE<0 THEN F_M$="Not Ready":GOTO 17260
  849. 17252  IF F_FREE>=0    AND F_FREE<1024      THEN F_MW$=STR$(F_FREE)+"Byte"
  850. 17254  IF F_FREE>=1024 AND F_FREE<1024*1024 THEN F_MW$=STR$(INT(F_FREE/1024*10)/10)+" KB  "
  851. 17256  IF F_FREE>1024*1024                  THEN F_MW$=STR$(INT(F_FREE/1024/1024*10)/10)+" MB  "
  852. 17258  F_M$=RIGHT$(SPACE$(6)+F_MW$,10)
  853. 17260  F_X=W_X1(G)+20:F_Y=W_Y1(G)+88
  854. 17262  LINE(F_X,F_Y)-(F_X+6*10,F_Y+12),PSET,%5,BF :SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0
  855. 17266  LINE(W_X1(G)+86,W_Y1(G)+43)-(W_X1(G)+327,W_Y1(G)+190),PSET,%5,BF
  856. 17268  CALLM GETDIR&,0,VARPTR(F_STR$) :F_I=INSTR(F_STR$,CHR$(0)):F_J=F_I
  857. 17272  WHILE F_I>1 AND MID$(F_STR$,F_I,1)<>"\":F_I=F_I-1:WEND
  858. 17274  F_X=W_X1(G)+88:F_Y=W_Y1(G)+25:F_M$=F_STR$
  859. 17276  LINE(F_X,F_Y)-(F_X+238 ,F_Y+12),PSET,%4,BF :SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0
  860. 17280  RETURN
  861. 17282 *F_ファイル名表示:'/////////////////////////////////
  862. 17284  F_I=1
  863. 17286  LINE(W_X1(G)+86,W_Y1(G)+43)-(W_X1(G)+327,W_Y1(G)+190),PSET,%6,BF
  864. 17288  WHILE F_I<=10 AND F_I+F_TOP<F_NUM
  865. 17290    GOSUB *F_指定行表示 :SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0
  866. 17294    F_I=F_I+1
  867. 17296  WEND
  868. 17298  GOSUB *F_カーソル表示
  869. 17300  RETURN
  870. 17302 *F_ドライブ情報取得:'///////////////////////////////
  871. 17304  FOR F_I=1 TO 26:F_DRV(F_I)=CALLM(ISEXIST&,F_I):NEXT
  872. 17306  FOR F_I=1 TO 16:F_DRV(F_I)=CALLM(ISEXIST&,F_I)
  873. 17310    IF F_DRV(F_I)>=0 THEN
  874. 17312      F_DRV(F_I)=INP(&H31D8+F_I*4,1):F_J=CALLM(ISFIXED&,F_I)
  875. 17314      IF F_DRV(F_I)=2 AND F_J=0 THEN F_DRV(F_I)=6
  876. 17316      IF F_DRV(F_I)=255 AND F_J=0 THEN F_DRV(F_I)=7
  877. 17318      IF F_DRV(F_I)=255 THEN F_DRV(F_I)=2
  878. 17320    ENDIF
  879. 17322  NEXT
  880. 17324  F_DRV(17)=8
  881. 17326  FOR F_I=18 TO 26
  882. 17328    IF F_DRV(F_I)>=0 THEN F_DRV(F_I)=9
  883. 17330  NEXT
  884. 17332  F_DRV(0)=CALLM(GETDRV&,VARPTR(F_STR$))
  885. 17334  RETURN
  886. 17336 *F_ファイル情報取得:'////////////////////////////////
  887. 17338  MCN=2:GOSUB *MCDSET
  888. 17340  F_NUM=0:F_WLD$="*.*"+CHR$(0)
  889. 17342  F_I=CALLM(FINDFIRST&,VARPTR(F_WLD$),&H10,VARPTR(F_STR$),VARPTR(F_ATTR&(0)),VARPTR(F_SIZE&(0)),VARPTR(F_DATE$(0)))
  890. 17344  IF F_I>=0 THEN
  891. 17346    WHILE F_I>=0
  892. 17348      F_I=CALLM(FINDNEXT&,VARPTR(F_STR$),VARPTR(F_ATTR&(0)),VARPTR(F_SIZE&(0)),VARPTR(F_DATE$(0))):F_NUM=F_NUM+1
  893. 17350    WEND
  894. 17352  ELSE
  895. 17354    F_NUM=0:GOTO 17380
  896. 17356  ENDIF
  897. 17358  ERASE F_NAME$,F_SIZE&,F_ATTR&,F_DATE$
  898. 17360  DIM F_NAME$(F_NUM),F_SIZE&(F_NUM),F_ATTR&(F_NUM),F_DATE$(F_NUM)
  899. 17362  F_I=1
  900. 17364  CALLM FINDFIRST&,VARPTR(F_WLD$),&H10,VARPTR(F_STR$),VARPTR(F_ATTR&(F_I)),VARPTR(F_SIZE&(F_I)),VARPTR(F_J)
  901. 17366  GOSUB *F_情報整理
  902. 17368  F_I=2
  903. 17370  WHILE F_I<=F_NUM
  904. 17372    CALLM FINDNEXT&,VARPTR(F_STR$),VARPTR(F_ATTR&(F_I)),VARPTR(F_SIZE&(F_I)),VARPTR(F_J)
  905. 17374    GOSUB *F_情報整理:F_I=F_I+1
  906. 17376  WEND
  907. 17378  GOSUB *F_ソート
  908. 17380  MCN=1:GOSUB *MCDSET
  909. 17382  RETURN
  910. 17384 *F_情報整理:'////////////////////////////////////////////
  911. 17386  F_NAME$(F_I)=LEFT$(F_STR$,INSTR(F_STR$,CHR$(0))-1)
  912. 17388  F_DATE$(F_I)=STR$(F_J\(2^25)+80)+"-"
  913. 17390  F_DATE$(F_I)=F_DATE$(F_I)+RIGHT$(STR$(100+(F_J\(2^21) AND 15)),2)+"-"
  914. 17392  F_DATE$(F_I)=F_DATE$(F_I)+RIGHT$(STR$(100+(F_J\(2^16) AND 31)),2)+" "
  915. 17394  F_DATE$(F_I)=F_DATE$(F_I)+RIGHT$(STR$(100+(F_J\(2^11) AND 31)),2)+":"
  916. 17396  F_DATE$(F_I)=F_DATE$(F_I)+RIGHT$(STR$(100+(F_J\(2^5)  AND 63)),2)
  917. 17398  RETURN
  918. 17400 *F_ソート:'/////////////////////////////////////////////
  919. 17402  FOR F_I=1 TO F_NUM
  920. 17404   IF F_ATTR&(F_I)=&H10 THEN F_NAME$(F_I)=CHR$(1)+F_NAME$(F_I)
  921. 17406  NEXT
  922. 17408  F_N=F_NUM
  923. 17410  FOR F_CHECK=F_N/2 TO 1 STEP -1
  924. 17412   GOSUB *F_下方移動
  925. 17414  NEXT
  926. 17416  WHILE F_N>1
  927. 17418   SWAP F_NAME$(F_N),F_NAME$(1):SWAP F_SIZE&(F_N),F_SIZE&(1)
  928. 17420   SWAP F_DATE$(F_N),F_DATE$(1):SWAP F_ATTR&(F_N),F_ATTR&(1)
  929. 17422   F_N=F_N-1
  930. 17424   F_CHECK=1:GOSUB *F_下方移動
  931. 17426  WEND
  932. 17428  FOR F_I=1 TO F_NUM
  933. 17430   IF F_ATTR&(F_I)=&H10 THEN F_NAME$(F_I)=RIGHT$(F_NAME$(F_I),LEN(F_NAME$(F_I))-1)
  934. 17432  NEXT
  935. 17434  F_J=1
  936. 17436  FOR F_I=1 TO F_NUM
  937. 17438   IF F_NAME$(F_I)<>"." AND F_NAME$(F_I)<>".." THEN
  938. 17440     F_NAME$(F_J)=F_NAME$(F_I):F_ATTR&(F_J)=F_ATTR&(F_I)
  939. 17442     F_DATE$(F_J)=F_DATE$(F_I):F_SIZE&(F_J)=F_SIZE&(F_I)
  940. 17444     F_J=F_J+1
  941. 17446   ENDIF
  942. 17448  NEXT
  943. 17450  F_NUM=F_J
  944. 17452 RETURN
  945. 17454 *F_下方移動
  946. 17456  F_I=F_CHECK
  947. 17458  F_J=F_I*2:F_END=0
  948. 17460  WHILE F_J<=F_N AND F_END=0
  949. 17462   IF F_J<F_N THEN IF F_NAME$(F_J)<F_NAME$(F_J+1) THEN F_J=F_J+1
  950. 17464   IF F_NAME$(F_I)>=F_NAME$(F_J) THEN
  951. 17466     F_END=1
  952. 17468   ELSE
  953. 17470     SWAP F_NAME$(F_I),F_NAME$(F_J):SWAP F_DATE$(F_I),F_DATE$(F_J)
  954. 17472     SWAP F_ATTR&(F_I),F_ATTR&(F_J):SWAP F_SIZE&(F_I),F_SIZE&(F_J)
  955. 17474     F_I=F_J:F_J=F_I*2
  956. 17476   ENDIF
  957. 17478  WEND
  958. 17480 RETURN
  959. 17482 *DRVDISP:'ドライブ表示:'/////////////////////////////////////
  960. 17484  F_X=W_X1(G)+26:F_Y=W_Y1(G)+44 :LINE(F_X,F_Y)-(F_X+31,F_Y+31),PSET,%4,BF
  961. 17488  PUT@A(F_X,F_Y)-(F_X+31,F_Y+31),F_DVS#,,,,,64*F_DRV(F_DRV(0))
  962. 17490  PUT@(F_X+5,F_Y+5)-(F_X+28,F_Y+28),F_PAT,,0
  963. 17492  F_X=W_X1(G)+28:F_Y=W_Y1(G)+44:F_M$=CHR$((F_DRV(0)+&H40))
  964. 17494  COLOR 7,0,0:SYMBOL(F_X,F_Y),F_M$,.75!,.75!,7,,,&H8
  965. 17496  RETURN
  966. 17498 *F_カーソル表示:'////////////////////////////////////////////
  967. 17500  IF F_NUM=0 THEN RETURN
  968. 17502  XDC1 =W_X1(G)+334:XDC2=W_X1(G)+344
  969. 17504  YDC1 =W_Y1(G)+56+INT(121*(F_TOP/F_NUM))
  970. 17506  YDC2 =W_Y1(G)+56+INT(121*((F_TOP+11)/F_NUM))
  971. 17508  IF YDC2>W_Y1(G)+177 THEN YDC2=W_Y1(G)+177
  972. 17510  IF F_DCI=1 THEN 17512 ELSE F_DCI=1:GOTO 17520
  973. 17512  YDC1X=W_Y1(G)+56+INT(121*(F_TOPX/F_NUMX))
  974. 17514  YDC2X=W_Y1(G)+56+INT(121*((F_TOPX+11)/F_NUMX))
  975. 17516  IF YDC2X>W_Y1(G)+177 THEN YDC2X=W_Y1(G)+177
  976. 17518  LINE(XDC1,YDC1X+1)-(XDC2,YDC2X-1),XOR,%4,BF
  977. 17520  LINE(XDC1,YDC1+1) -(XDC2,YDC2-1) ,XOR,%4,BF
  978. 17522  F_TOPX=F_TOP :F_NUMX=F_NUM:RETURN
  979. 17524 *F_上シフト:'///////////////////////////////////////////////
  980. 17526  X1=W_X1(G)+86:X2=W_X1(G)+327:Y=W_Y1(G)+45
  981. 17528  GET@A(X1,Y+14*1)-(X2,Y+14*10),F_PC#
  982. 17530  LINE (X1,Y+14*9)-(X2,Y+14*10),PSET,%6,BF
  983. 17532  PUT@A(X1,Y     )-(X2,Y+14*9 ),F_PC#
  984. 17534  GOSUB *F_カーソル表示:RETURN
  985. 17536 *F_下シフト:'///////////////////////////////////////////////
  986. 17538  X1=W_X1(G)+86:X2=W_X1(G)+327:Y=W_Y1(G)+45
  987. 17540  GET@A(X1,Y     )-(X2,Y+14*9 ),F_PC#
  988. 17542  LINE (X1,Y     )-(X2,Y+14*1 ),PSET,%6,BF
  989. 17544  PUT@A(X1,Y+14*1)-(X2,Y+14*10),F_PC#
  990. 17546  GOSUB *F_カーソル表示:RETURN
  991. 17548 *F_指定行表示:'/////////////////////////////////////////////
  992. 17550  F_X=W_X1(G)+88:F_Y=W_Y1(G)+F_I*14+32
  993. 17552    IF F_ATTR&(F_I+F_TOP)=&H10 THEN
  994. 17554      F_MW1$="<"+LEFT$(F_NAME$(F_I+F_TOP)+SPACE$(20),12)+">"
  995. 17556      F_MW2$=SPACE$(8)+F_DATE$(F_I+F_TOP)
  996. 17558      F_M$=F_MW1$+F_MW2$
  997. 17560    ELSE
  998. 17562      F_MW1$=" "+LEFT$(F_NAME$(F_I+F_TOP)+SPACE$(14),12)
  999. 17564      F_MW2$=" "+RIGHT$(SPACE$(14)+STR$(F_SIZE&(F_I+F_TOP)),8)+F_DATE$(F_I+F_TOP)
  1000. 17566      F_M$=F_MW1$+F_MW2$
  1001. 17568    ENDIF
  1002. 17570    SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0
  1003. 17572  RETURN
  1004. 17574 '
  1005. 18000 '------------------------------------------------------------------
  1006. 18005 *HKHELP:'             Copyrigit(C) T.Komura / HK2               /
  1007. 18010 '   Version 1.0  1994.07.30                 / helpプログラム    /
  1008. 18011 '   Version 2.0  1995.07.30 HK2ドラッグ対応
  1009. 18015 'メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  1010. 18016 G=5:SWNOX=SWNO:DOCDC=6:DOCBC=8
  1011. 18020 GOSUB *DOCTIFDSP:GOSUB *DOCFREAD
  1012. 18026 MCN=1:GOSUB *MCDSET
  1013. 18030 GOSUB *DOC初期表示
  1014. 18035 *DC_MSINSEL
  1015. 18040 SWPASS=1:GOSUB *MCSELECT:'マウスボタン選択
  1016. 18042 IF SWNO=0 THEN GOSUB *DC_他エリア判定
  1017. 18043 IF SWNO<0 THEN SWNO=5:'右クリックで終了
  1018. 18045 IF SWNO>7 OR SWNO=0 THEN *DC_MSINSEL
  1019. 18050 IF SWNO=5 THEN GOTO *SDC_05
  1020. 18055 IF SWNO=6 THEN GOTO *SDC_06
  1021. 18060 IF SWNO=7 THEN GOTO *SDC_07
  1022. 18065                GOTO *DOCCTRL
  1023. 18070 *DOCCTRL
  1024. 18075  B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
  1025. 18080   DCCD=SWNO:GOSUB *DOC表示制御
  1026. 18085  B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  1027. 18090  GOTO *DC_MSINSEL
  1028. 18095 *SDC_06:       GOSUB *MCDRAG     :GOTO *DC_MSINSEL
  1029. 18100 *SDC_07:DCCD=5:GOSUB *DOC表示制御:GOTO *DC_MSINSEL
  1030. 18105 *SDC_05:'終了
  1031. 18110  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1032. 18115  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1033. 18120  DOCCS=0:SWNO=SWNOX
  1034. 18122  RETURN:'///////////////////////////////////////////////////
  1035. 18125 '
  1036. 18130 'sub routine---------------------------------------------
  1037. 18135 *DOCTIFDSP
  1038. 18137  MOUSE 1,,,0
  1039. 18140  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1040. 18145  LOAD@ TIFDRV$+"\hk2help.tif",(W_X1(G),W_Y1(G))
  1041. 18165  MOUSE 1,,,1:GOSUB *DOC名称表示
  1042. 18170  RETURN
  1043. 18175 *DOCFREAD:'helpファイル読み込み
  1044. 18177  MCN=2:GOSUB *MCDSET
  1045. 18180  DOCN=0:OPEN "I",#1,PRGDRV$+"\HELPF"+DOCF$
  1046. 18185  IF EOF(1)=-1 THEN 18200
  1047. 18190  DOCN=DOCN+1:LINE INPUT #1,DOC$(DOCN)
  1048. 18195  GOTO 18185
  1049. 18200  CLOSE #1:RETURN
  1050. 18205 *DOC指定行表示
  1051. 18210  GOSUB *DOCカーソル表示
  1052. 18220  FOR DN=SDN TO EDN
  1053. 18225    XDC=W_X1(G)+8:YDC=W_Y1(G)+27+DCL*12
  1054. 18230    SYMBOL(XDC,YDC),DOC$(DN),.75!,.75!,7
  1055. 18235    DCL=DCL+1
  1056. 18240  NEXT DN:RETURN
  1057. 18245 *DOC初期表示
  1058. 18250  SDN=1:EDN=24:DCL=0:DSP=1:GOSUB *DOC指定行表示
  1059. 18255  RETURN
  1060. 18260 *DOC表示制御:'///////////////////////////////////////
  1061. 18265  ON DCCD GOTO *DCC3,*DCC1,*DCC2,*DCC4,*DCC5
  1062. 18270 *DCC1:'------ 前行
  1063. 18275  DSP=DSP-1 :IF DSP<1 THEN DSP=1          :RETURN
  1064. 18280  SDN=DSP   :GOSUB *DOC下シフト
  1065. 18285  EDN=SDN   :DCL=0 :GOSUB *DOC指定行表示  :RETURN
  1066. 18290 *DCC2:'------ 次行
  1067. 18295  DSP=DSP+1 :IF DSP+23>DOCN THEN DSP=DSP-1:RETURN
  1068. 18300  SDN=DSP+23: GOSUB *DOC上シフト
  1069. 18305  EDN=SDN   :DCL=23:GOSUB *DOC指定行表示  :RETURN
  1070. 18310 *DCC3:'------ 前頁
  1071. 18315  DSP=DSP-24:IF DSP<1 THEN DSP=1
  1072. 18320  GOTO *DCC51
  1073. 18325 *DCC4:'------ 次頁
  1074. 18330  DSP=DSP+24:IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
  1075. 18335  GOTO *DCC51
  1076. 18340 *DCC5:'------ カーソル指定
  1077. 18345  DSP=((INT(DOCN*DOCR))\24)*24+1
  1078. 18350  IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
  1079. 18355 *DCC51
  1080. 18360  SDN=DSP   :EDN=SDN+23
  1081. 18365  IF EDN>DOCN THEN EDN=EDN-1:GOTO 18365
  1082. 18370  LINE (W_X1(G)+6,W_Y1(G)+27)-(W_X1(G)+492,W_Y1(G)+27+12*24),PSET,%DOCBC,BF
  1083. 18375  DCL=0:GOSUB *DOC指定行表示              :RETURN
  1084. 18380 '------------------------------------------------------
  1085. 18385 *DOC上シフト
  1086. 18386  X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
  1087. 18390  GET@A(X1,Y1+12*1 )-(X2,Y2+12*24),HLPC#
  1088. 18395  LINE (X1,Y1+12*23)-(X2,Y2+12*24),PSET,%DOCBC,BF
  1089. 18400  PUT@A(X1,Y1      )-(X2,Y2+12*23),HLPC#
  1090. 18405  RETURN
  1091. 18410 *DOC下シフト
  1092. 18411  X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
  1093. 18415  GET@A(X1,Y1     )-(X2,Y2+12*23),HLPC#
  1094. 18420  LINE (X1,Y1     )-(X2,Y2+12*1 ),PSET,%DOCBC,BF
  1095. 18425  PUT@A(X1,Y1+12*1)-(X2,Y2+12*24),HLPC#
  1096. 18430  RETURN
  1097. 18435 *DOCカーソル表示
  1098. 18440  XDC1 =W_X1(G)+500:XDC2=W_X1(G)+511
  1099. 18445  YDC1 =W_Y1(G)+53+INT(233*((DSP-1)  /DOCN))
  1100. 18450  YDC2 =W_Y1(G)+53+INT(233*((DSP+23) /DOCN))
  1101. 18451  A=W_Y1(G)+B_Y1(G,3):IF YDC2>=A  THEN YDC2=A-1
  1102. 18455  YDC1X=W_Y1(G)+53+INT(233*((DSPX-1) /DOCN))
  1103. 18460  YDC2X=W_Y1(G)+53+INT(233*((DSPX+23)/DOCN))
  1104. 18461  A=W_Y1(G)+B_Y1(G,3):IF YDC2X>=A THEN YDC2X=A-1
  1105. 18465  IF DOCCS=1 THEN 18470 ELSE DOCCS=1:GOTO 18475
  1106. 18470  LINE(XDC1,YDC1X)-(XDC2,YDC2X),XOR,5,BF
  1107. 18475  LINE(XDC1,YDC1 )-(XDC2,YDC2 ),XOR,5,BF
  1108. 18480  DSPX=DSP :RETURN
  1109. 18485 *DOC名称表示
  1110. 18490  XDC=W_X1(G)+427:YDC=W_Y1(G)+7
  1111. 18495  DOCD$=RIGHT$(DOCF$,LEN(DOCF$)-1)
  1112. 18500  SYMBOL(XDC,YDC),DOCD$,.75!,.75!,%DOCDC
  1113. 18505  RETURN
  1114. 18810 *DC_他エリア判定
  1115. 18830  IF (X_M>(W_X1(G)+499) AND X_M<(W_X1(G)+512)) ELSE 18845
  1116. 18835  IF (Y_M>(W_Y1(G)+ 53) AND Y_M<(W_Y1(G)+288)) ELSE 18845
  1117. 18840  DOCR=(Y_M-(W_Y1(G)+53))/235:SWNO=7
  1118. 18845  RETURN
  1119. 18850 '
  1120. 19000 '
  1121. 19010 '//////////////////////////////////////////////////////////////
  1122. 19020 *ERROR:'      エラー処理サブルーチン V1.10   1990.11.08 T.Komura
  1123. 19030 '             
  1124. 19040 '
  1125. 19050 IF ERR=53 THEN *IOERR
  1126. 19060 IF ERR=63 THEN *FILNOF
  1127. 19070 IF ERR=67 THEN *DSKFUL
  1128. 19080 IF ERR=71 THEN *DSKUNF 
  1129. 19090 IF ERR=72 THEN *DSKOFF
  1130. 19100 IF ERR=73 THEN *DSKWP
  1131. 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
  1132. 19120 GOSUB *ERMSG
  1133. 19130 STOP
  1134. 19140 '////////// エラー処理
  1135. 19150 *IOERR
  1136. 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
  1137. 19170 GOSUB *ERMSG:RESUME
  1138. 19180 *DSKFUL
  1139. 19190 ERMES$="ディスクが満杯です。 交換後、"
  1140. 19200 GOSUB *ERMSG:RESUME
  1141. 19210 *DSKUNF
  1142. 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
  1143. 19230 GOSUB *ERMSG:RESUME
  1144. 19240 *DSKOFF
  1145. 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
  1146. 19260 GOSUB *ERMSG:RESUME
  1147. 19270 *DSKWP
  1148. 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
  1149. 19290 GOSUB *ERMSG:RESUME
  1150. 19300 *FILNOF
  1151. 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
  1152. 19320 GOSUB *ERMSG:RESUME
  1153. 19330 '
  1154. 19340 *ERMSG:'////////// エラーメッセージ
  1155. 19355 LINE(0,465)-(639,479),PSET,0,BF
  1156. 19360 SYMBOL(0,465),ERMES$+"[実行]キーを押してね!",.75!,.75!,2
  1157. 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
  1158. 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
  1159. 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
  1160. 19400 LINE(0,465)-(639,479),PSET,0,BF
  1161. 19410 SYMBOL(0,465),"エラー処理を終わります。",.75!,.75!,6
  1162. 19420 RETURN
  1163. 19430 '
  1164. 19440 '
  1165. 19450 '
  1166. 20000 '------------------------------------------------------------------
  1167. 20010 ' CUSTOM SUB ROUTINE FOR "HKCNF.BAS"
  1168. 20020 '------------------------------------------------------------------
  1169. 20100 *表紙表示
  1170. 20101  DEF FONT "システム   12ドット"
  1171. 20105  LOAD@ TIFDRV$+"\HK2CFG.tif",(0,0)
  1172. 20110  G=1:B=6:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
  1173. 20120  MESN=1:GOSUB *MESDSP
  1174. 20130 ' INTERVAL ON
  1175. 20140  RETURN
  1176. 20190 '
  1177. 20200 *設定内容一覧表示
  1178. 20205  IIS=1:IIE=30:' v2.0
  1179. 20220  FOR II=IIS TO IIE
  1180. 20222    CFID$=CFI$(II):IF II=21 THEN 20250
  1181. 20225    IF II=22          THEN CFNO=II:GOSUB *CFION_OFFDEC
  1182. 20226    IF II=20          THEN CFNO=II:GOSUB *CFICHRDEC
  1183. 20227    IF II=24 OR II=25 THEN CFNO=II:GOSUB *CFION_OFFDEC
  1184. 20228    IF II=27          THEN CFNO=II:GOSUB *CFION_OFFDEC
  1185. 20229    IF II=30          THEN CFNO=II:GOSUB *CFIYMDDEC
  1186. 20230    CFNO=II
  1187. 20240    IF CFNO=30 THEN GOSUB *内容表示2 ELSE GOSUB *内容表示
  1188. 20250  NEXT II
  1189. 20260  RETURN
  1190. 20270 '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  1191. 20300 *CFION_OFFDEC
  1192. 20310  IF CFI$(CFNO)="1" THEN CFID$=" ON " ELSE CFID$="OFF"
  1193. 20320  RETURN
  1194. 20380 '
  1195. 20400 *CFICHRDEC
  1196. 20410  CFID$=RIGHT$("   "+CFI$(CFNO),3)
  1197. 20412  RETURN
  1198. 20418 '
  1199. 20420 *CFICNENC
  1200. 20422  WAITN=VAL(CFID$):CFI$(20)=RIGHT$(STR$(WAITN),LEN(STR$(WAITN))-1)
  1201. 20424  RETURN
  1202. 20428 '
  1203. 20430 *CFICHRDEC2
  1204. 20440  CFID$=RIGHT$("  "+CFI$(CFNO),2)
  1205. 20442  RETURN
  1206. 20450 *CFICHRENC2
  1207. 20452  CFISDY=VAL(CFID$):CFI$(50)=RIGHT$(STR$(100+CFISDY),2)
  1208. 20454  RETURN
  1209. 20458 '
  1210. 20460 *CFIYMDDEC
  1211. 20470  CFID$=SSY$+"     "+SSM$+"    "+SSD$
  1212. 20472  RETURN
  1213. 20480 *CFIYMDENC
  1214. 20482  CFI$(30)=SSY$+SSM$+SSD$
  1215. 20484  RETURN
  1216. 20488 '
  1217. 20500 *環境設定入力
  1218. 20505  MESN=3:GOSUB *MESDSP
  1219. 20510  CFID$=CFI$(CFNO)
  1220. 20520  LX=CFDX(CFNO):LY=CFDY(CFNO):LL=CFDL(CFNO):LG=1:LP=1:LC=3:CBC=0
  1221. 20530  L$(1)=CFID$:LINS=1:GOSUB *LKEYIN
  1222. 20550  CFID$=L$(1):GOSUB *内容表示
  1223. 20555  IF CFNO>15 THEN GOSUB *スペースカット
  1224. 20560  CFI$(CFNO)=CFID$
  1225. 20570  RETURN
  1226. 20580 '
  1227. 20600 *SNDMF設定
  1228. 20610  MESN=4:GOSUB *MESDSP
  1229. 20620  IF CFI$(CFNO)="1" THEN 20624 ELSE 20625
  1230. 20624     CFI$(CFNO)="0" :MESN=5:GOSUB *MESDSP:GOTO 20630
  1231. 20625     CFI$(CFNO)="1" :MESN=4:GOSUB *MESDSP:GOTO 20630
  1232. 20630  WAIT 60:GOSUB *CFION_OFFDEC
  1233. 20640  GOSUB *内容表示
  1234. 20670  RETURN
  1235. 20680 '
  1236. 20700 *SNDMFウエイト設定
  1237. 20720  WAITN=VAL(CFI$(20))
  1238. 20730  IF CFNO=20 THEN WAITN=WAITN+10:GOTO 20750
  1239. 20740  IF CFNO=21 THEN WAITN=WAITN-10:GOTO 20750
  1240. 20750  IF WAITN>990 THEN WAITN=990
  1241. 20752  IF WAITN<10  THEN WAITN=10
  1242. 20760  CFID$=RIGHT$("   "+STR$(WAITN),3)
  1243. 20770  GOSUB *CFICNENC
  1244. 20780  GOSUB *内容表示
  1245. 20790  RETURN
  1246. 20795 '
  1247. 20800 *スペースカット
  1248. 20810  SPP=INSTR(CFID$," ")
  1249. 20820  IF SPP<2 THEN RETURN
  1250. 20830  CFID$=LEFT$(CFID$,SPP-1)
  1251. 20840  RETURN
  1252. 20850 '
  1253. 20900 *DICF設定
  1254. 20910  MESN=4:GOSUB *MESDSP
  1255. 20920  IF CFI$(CFNO)="1" THEN 20924 ELSE 20925
  1256. 20924     CFI$(CFNO)="0" :MESN=13:GOSUB *MESDSP:GOTO 20930
  1257. 20925     CFI$(CFNO)="1" :MESN=12:GOSUB *MESDSP:GOTO 20930
  1258. 20930  WAIT 60:GOSUB *CFION_OFFDEC
  1259. 20940  GOSUB *内容表示
  1260. 20970  RETURN
  1261. 20980 '
  1262. 21000 *パス設定
  1263. 21010  MESN=18:GOSUB *MESDSP
  1264. 21020  CFID$=CFI$(CFNO):DRV$=LEFT$(CFID$,2)
  1265. 21025  SHELL DRV$: SHELL "CHDIR "+CFID$
  1266. 21040  G=2:GOSUB *F_ファイルセレクタ
  1267. 21045  DRV$=LEFT$(PRGDRV$,2)               :'v2.1L10j
  1268. 21050  SHELL DRV$:SHELL "CHDIR "+PRGDRV$
  1269. 21055  IF F_SPASS=1 THEN 21085             :'v2.1L10jで21045から移動
  1270. 21060  CFID$=F_FILEDRV$+":"+F_FILEPATH$:GOSUB *内容表示
  1271. 21070  GOSUB *スペースカット
  1272. 21080  CFI$(CFNO)=CFID$
  1273. 21085  RETURN
  1274. 21090 '
  1275. 21200 *SCALC設定
  1276. 21210  MESN=4:GOSUB *MESDSP
  1277. 21220  IF CFI$(CFNO)="1" THEN 21224 ELSE 21225
  1278. 21224     CFI$(CFNO)="0" :MESN=17:GOSUB *MESDSP:GOTO 21230
  1279. 21225     CFI$(CFNO)="1" :MESN=16:GOSUB *MESDSP:GOTO 21230
  1280. 21230  WAIT 60:GOSUB *CFION_OFFDEC
  1281. 21240  GOSUB *内容表示
  1282. 21270  RETURN
  1283. 21280 '
  1284. 21300 *月次開始日設定
  1285. 21310  GOSUB *環境設定入力
  1286. 21340  CFID$=LMG$:GOSUB *CFICHRENC2
  1287. 21350  IF CFISDY<1 OR CFISDY>31 THEN BEEP:GOTO 21310
  1288. 21360  GOSUB *CFICHRDEC2
  1289. 21380  GOSUB *内容表示
  1290. 21390  RETURN
  1291. 21395 '
  1292. 21500 *残高起算日設定
  1293. 21505  CFIYMD$=CFI$(30)
  1294. 21510  MESN=3:GOSUB *MESDSP
  1295. 21520 '年
  1296. 21530  LX=CFDX(CFNO):LY=CFDY(CFNO):LL=4:LG=1:LP=1:LC=3:CBC=0
  1297. 21532  L$(1)=SSY$:LINS=0:GOSUB *LKEYIN
  1298. 21534  SSY$=L$(1):SSY=VAL(SSY$):SSY$=RIGHT$(STR$(10000+SSY),4)
  1299. 21536  CFID$=SSY$:GOSUB *内容表示2
  1300. 21538  IF SSY<1 THEN BEEP:GOTO 21530
  1301. 21540 '月
  1302. 21550  LX=CFDX(CFNO)+9*6:LY=CFDY(CFNO):LL=2:LG=1:LP=1:LC=3:CBC=0
  1303. 21552  L$(1)=SSM$:LINS=0:GOSUB *LKEYIN
  1304. 21554  SSM$=L$(1):SSM=VAL(SSM$):SSM$=RIGHT$(STR$(100+SSM),2)
  1305. 21556  CFID$=SSM$:GOSUB *内容表示2
  1306. 21558  IF SSM<1 OR SSM>12 THEN BEEP:GOTO 21550
  1307. 21560 '日
  1308. 21570  LX=CFDX(CFNO)+15*6:LY=CFDY(CFNO):LL=2:LG=1:LP=1:LC=3:CBC=0
  1309. 21572  L$(1)=SSD$:LINS=0:GOSUB *LKEYIN
  1310. 21574  SSD$=L$(1):SSD=VAL(SSD$):SSD$=RIGHT$(STR$(100+SSD),2)
  1311. 21576  CFID$=SSD$:GOSUB *内容表示2
  1312. 21578  IF SSD<1 OR SSD>31 THEN BEEP:GOTO 21570
  1313. 21580 '
  1314. 21592  IF CFI$(30)<>CFIYMD$ THEN CFIYMDCF=1 ELSE CFIYMDCF=0
  1315. 21595  RETURN
  1316. 21598 '
  1317. 22000 *内容表示
  1318. 22005  LX1=CFDX(CFNO):LX2=LX1+CFDL(CFNO)*6
  1319. 22006  LY1=CFDY(CFNO):LY2=LY1+11
  1320. 22010  LINE(LX1,LY1)-(LX2,LY2),PSET,0,BF
  1321. 22020  SYMBOL(LX1,LY1),CFID$,.75!,.75!,%CFDC(CFNO)
  1322. 22030  RETURN
  1323. 22040 '
  1324. 22100 *内容表示2
  1325. 22104  GOSUB *CFIYMDDEC:GOSUB *CFIYMDENC
  1326. 22105  LY1=CFDY(CFNO):LY2=CFDY(CFNO)+11
  1327. 22110  LX1=CFDX(CFNO)     :LX2=LX1+4*6: LINE(LX1,LY1)-(LX2,LY2),PSET,0,BF
  1328. 22112  LX1=CFDX(CFNO)+9*6 :LX2=LX1+2*6: LINE(LX1,LY1)-(LX2,LY2),PSET,0,BF
  1329. 22114  LX1=CFDX(CFNO)+15*6:LX2=LX1+2*6: LINE(LX1,LY1)-(LX2,LY2),PSET,0,BF
  1330. 22120  LX1=CFDX(CFNO):SYMBOL(LX1,LY1),CFID$,.75!,.75!,%CFDC(CFNO)
  1331. 22130  RETURN
  1332. 22140 '
  1333. 23400 *累計額演算
  1334. 23410  IF TRG1#<TRG1D# THEN 23500
  1335. 23420  FOR II=1 TO 15: TDYN1#(II)=TDYN1#(II) +VAL(DYN$(II)) :NEXT II
  1336. 23430  FOR II=1 TO 16:TSDYN1#(II)=TSDYN1#(II)+VAL(SDYN$(II)):NEXT II
  1337. 23440  FOR II=1 TO 3 :TTL1I#=TTL1I#+VAL(DYN$(II))           :NEXT II
  1338. 23450  FOR II=4 TO 15:TTL1O#=TTL1O#+VAL(DYN$(II))           :NEXT II
  1339. 23460  TTL1R#=TTL1I#-TTL1O#
  1340. 23470  SDYN$(17)=RIGHT$(SPACE$(10)+STR$(TTL1R#),10)
  1341. 23480 '
  1342. 23500  IF TRG2=TRG2D THEN GOSUB *TRG2CLR
  1343. 23510  FOR II=1 TO 15: TDYN2#(II)=TDYN2#(II) +VAL(DYN$(II)) :NEXT II
  1344. 23520  FOR II=1 TO 16:TSDYN2#(II)=TSDYN2#(II)+VAL(SDYN$(II)):NEXT II
  1345. 23530  FOR II=1 TO 3 :TTL2I#=TTL2I#+VAL(DYN$(II))           :NEXT II
  1346. 23540  FOR II=4 TO 15:TTL2O#=TTL2O#+VAL(DYN$(II))           :NEXT II
  1347. 23550  TTL2R#=TTL2I#-TTL2O#
  1348. 23560  SDYN$(18)=RIGHT$(SPACE$(10)+STR$(TTL2R#),10)
  1349. 23570  RETURN
  1350. 23580 '
  1351. 23600 *TRG2CLR
  1352. 23610  FOR II=1 TO 15: TDYN2#(II)=0:NEXT II
  1353. 23620  FOR II=1 TO 16:TSDYN2#(II)=0:NEXT II
  1354. 23630  TTL2I#=0:TTL2O#=0
  1355. 23640  RETURN
  1356. 23650 *TRG1CLR
  1357. 23660  FOR II=1 TO 15: TDYN1#(II)=0:NEXT II
  1358. 23670  FOR II=1 TO 16:TSDYN1#(II)=0:NEXT II
  1359. 23680  TTL1I#=0:TTL1O#=0
  1360. 23690  RETURN
  1361. 23695 '
  1362. 23700 *HKTOTAL書き込み
  1363. 23710  FOR II=1 TO 15
  1364. 23720    TDYN1$(II)=RIGHT$(SPACE$(10)+STR$(TDYN1#(II)),10)
  1365. 23730    TDYN2$(II)=RIGHT$(SPACE$(10)+STR$(TDYN2#(II)),10)
  1366. 23740  NEXT II
  1367. 23785  GOSUB *HKTFPUT
  1368. 23790  RETURN
  1369. 23795 '
  1370. 23800 *総計ファイル作成
  1371. 23802  MESN=19:GOSUB *MESDSP
  1372. 23805  CMES$="残高計算実行":GOSUB *確認
  1373. 23806  ON CAUNO GOTO 23810,23930
  1374. 23810  MESN=21:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  1375. 23815  GOSUB *SHKIOPN:CLOSE
  1376. 23820  IF IR=0 THEN RETURN
  1377. 23825  MCN=2:GOSUB *MCDSET
  1378. 23826  PCCD=1:PCMES$="累計額演算":GOSUB *PROCD:'処理状況表示
  1379. 23830  TRG1D#=VAL(SSY$+SSM$+SSD$)
  1380. 23835  TRG2D=SDAY
  1381. 23840  GOSUB *TRG1CLR
  1382. 23860  FOR RR=1 TO IR
  1383. 23870    GOSUB *SHKISRC
  1384. 23872    PCCUR=RR:PCMAX=IR:PCINT=1
  1385. 23873    PCCD=3:GOSUB *PROCD:'処理状況表示
  1386. 23875    FOR RDY=1 TO 31
  1387. 23876      TRG1#=VAL(IYM$)*100#+RDY
  1388. 23877      TRG2=RDY
  1389. 23880      IF TRG1#<TRG1D# THEN 23900
  1390. 23885      GOSUB *SHKDGET
  1391. 23892      GOSUB *累計額演算
  1392. 23900    NEXT RDY
  1393. 23910  NEXT RR
  1394. 23920  PCCD=2:GOSUB *PROCD:'処理状況表示
  1395. 23925  GOSUB *HKTOTAL書き込み
  1396. 23927  MESN=14:GOSUB *SNDMSG
  1397. 23930  MCN=1:GOSUB *MCDSET
  1398. 23935  RETURN'
  1399. 23940 '
  1400. 24000 '家計簿ファイルチェック・・・・・・・・・・・・・・・・・・・・・・・・・・・・・v2.0
  1401. 24100 *HLIDXファイルチェック
  1402. 24110  GOSUB *HKIOPN:CLOSE
  1403. 24120  IF IR>0 THEN RETURN
  1404. 24130  MESN=15:GOSUB *MESDSP
  1405. 24140  CMES$="新規家計簿ファイル作成":GOSUB *確認
  1406. 24150  ON CAUNO GOTO 24160,24200
  1407. 24160  GOSUB *ファイル年月入力
  1408. 24170  GOSUB *新規ファイル作成
  1409. 24180  IF FMAKE=0 THEN 24130
  1410. 24190  MESN=4:GOSUB *MESDSP
  1411. 24200  RETURN
  1412. 24210 '
  1413. 24220 *ファイル年月入力
  1414. 24230  MESN=22:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
  1415. 24240  SYMBOL(54*8,465),"    年   月",.75!,.75!,7
  1416. 24250  GOSUB *本日の日付2
  1417. 24260  YR$=TY$:MN$=TM$
  1418. 24270  LX=54*8-4:LY=465    :LC=5:LL=4:LG=1:LP=1
  1419. 24280  L$(1)=YR$:LINS=0:GOSUB *LKEYIN
  1420. 24290  YR$=L$(1):SYMBOL(LX,LY),YR$,.75!,.75!,6
  1421. 24300  LX=54*8+6*6+4:LY=465:LC=5:LL=2:LG=1:LP=1
  1422. 24310  L$(1)=MN$:LINS=0:GOSUB *LKEYIN
  1423. 24320  MN$=L$(1):SYMBOL(LX,LY),YR$,.75!,.75!,6
  1424. 24330  LINE(0,463)-(639,479),PSET,0,BF
  1425. 24340  SYMBOL(0,465),YR$+"年"+MN$+"月の家計簿ファイルを作成します。",.75!,.75!,6
  1426. 24350  RETURN
  1427. 24360 '
  1428. 24370 *新規ファイル作成
  1429. 24380  CMES$="["+YR$+"年"+MN$+"月]ファイル新規作成"
  1430. 24390  GOSUB *確認
  1431. 24400  ON CAUNO GOTO 24410,24530
  1432. 24410  MESN=14:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
  1433. 24420  IYM$=YR$+MN$:IMAK$=SPACE$(32):'--------------IDX追加
  1434. 24430  RI=IR+1:GOSUB *HKIPUT
  1435. 24435  PCCD=1:PCMES$="新規家計簿ファイル作成":GOSUB *PROCD:'処理状況表示
  1436. 24440  DEV$=SPACE$(128)             :'------------ファイル作成
  1437. 24450  FOR JJ=1 TO 16:DYN$(JJ)=SPACE$(10):DRM$(JJ)=SPACE$(52):NEXT JJ
  1438. 24460  FOR RDY=1 TO 31
  1439. 24470    LINE(70*8,465)-(639,479),PSET,0,BF
  1440. 24480    SYMBOL(70*8,465),RIGHT$(STR$(RDY),2)+" / 31",.75!,.75!,4
  1441. 24490    GOSUB *HKDPUT
  1442. 24495    PCCUR=RDY:PCMAX=31:PCINT=1:PCCD=3:GOSUB *PROCD:'処理状況表示
  1443. 24500  NEXT RDY
  1444. 24510  MESN=14:GOSUB *SNDMSG
  1445. 24515  PCCD=2:GOSUB *PROCD:'処理状況表示
  1446. 24520  FMAKE=1:RETURN
  1447. 24530  FMAKE=0:RETURN
  1448. 24540 '
  1449. 24550 *本日の日付2
  1450. 24560  TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
  1451. 24570  IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
  1452. 24580  TY$=RIGHT$(STR$(TY),4)
  1453. 24590  TM$=MID$(DATE$,4,2):TM=VAL(TM$)
  1454. 24600  TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
  1455. 24610  RETURN
  1456. 24620 '
  1457. 24630 *HKIOPN:'---------- インデックスファイルオープン
  1458. 24640  XDRV$=DATDRV$:GOSUB *PATHMAKE
  1459. 24670  FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
  1460. 24680  OPEN "R",#2,FLN$
  1461. 24690  FIELD #2,6 AS I$(1),32 AS I$(2)
  1462. 24700  IR=LOF(2)
  1463. 24710  RETURN
  1464. 24720 '
  1465. 24730 *HKDOPN:'---------- 家計簿データファイルオープン
  1466. 24740  XDRV$=DATDRV$:GOSUB *PATHMAKE
  1467. 24770  FLN$=DRV$+"(1120)"+PATH$+"\HL"+IYM$+".DAT"
  1468. 24780  OPEN "R",#1,FLN$
  1469. 24790  FIELD #1,128 AS D$(1),10*16 AS D$(2),52*4 AS D$(3),52*4 AS D$(4),52*4 AS D$(5),52*4 AS D$(6)
  1470. 24800  AR=LOF(1)
  1471. 24810  RETURN
  1472. 24820 '
  1473. 24830 '
  1474. 24840 *HKIPUT:'---------- インデックスファイル作成
  1475. 24850  GOSUB *HKIOPN
  1476. 24860  LSET I$(1)=IYM$
  1477. 24870  LSET I$(2)=IMK$
  1478. 24880  PUT #2,RI
  1479. 24890  CLOSE #2
  1480. 24900  RETURN
  1481. 24910 '
  1482. 24920 *HKDPUT:'---------- 家計簿データ書き込み
  1483. 24930  GOSUB *HKDOPN
  1484. 24940  R=RDY
  1485. 24950  LSET D$(1)=DEV$
  1486. 24960  DX$="":FOR II=1 TO 16:DX$=DX$+DYN$(II   ):NEXT II:LSET D$(2)=DX$
  1487. 24970  DX$="":FOR II=1 TO  4:DX$=DX$+DRM$(II+ 0):NEXT II:LSET D$(3)=DX$
  1488. 24980  DX$="":FOR II=1 TO  4:DX$=DX$+DRM$(II+ 4):NEXT II:LSET D$(4)=DX$
  1489. 24990  DX$="":FOR II=1 TO  4:DX$=DX$+DRM$(II+ 8):NEXT II:LSET D$(5)=DX$
  1490. 25000  DX$="":FOR II=1 TO  4:DX$=DX$+DRM$(II+12):NEXT II:LSET D$(6)=DX$
  1491. 25010  PUT #1,R
  1492. 25020  CLOSE #1
  1493. 25030  RETURN
  1494. 25090 '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  1495. 29900 '-----------------------------------------------------------------
  1496. 30000 *内容表示座標読み取り
  1497. 30040  RESTORE *設定内容表示座標:READ SWNN
  1498. 30050  FOR B=1 TO SWNN
  1499. 30060    READ CFDX(B),CFDY(B),CFDC(B),CFDL(B)
  1500. 30070  NEXT B
  1501. 30080  RETURN
  1502. 30090 '
  1503. 31200 *確認
  1504. 31205  G=3:SWNOX=SWNO:MOUSE 1,,,0
  1505. 31210  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1506. 31220  LOAD@ TIFDRV$+"\CAUTION2.TIF",(W_X1(G),W_Y1(G))
  1507. 31225  PLAY "o6l4ce":MOUSE 1,,,1
  1508. 31230  FOR II=1 TO 4
  1509. 31232    SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,6
  1510. 31234    WAIT SWAIT\10+1
  1511. 31236    LINE(W_X1(G)+102,W_Y1(G)+9)-(W_X1(G)+102+6*39,W_Y1(G)+9+12),PSET,%9,BF
  1512. 31237    WAIT SWAIT\10+1
  1513. 31238  NEXT II
  1514. 31239  SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,7
  1515. 31240  MESN=19:GOSUB *SNDMSG:'28chr
  1516. 31241  GOSUB *MCSELECT'ボタン選択
  1517. 31242  IF SWNO<0 THEN SWNO=2
  1518. 31243  IF SWNO=3 THEN GOSUB *MCDRAG:GOTO 31241
  1519. 31244  IF SWNO=0 THEN 31241
  1520. 31245  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1521. 31260  WAIT SWAIT\5+1
  1522. 31270  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1523. 31272  CAUNO=SWNO:SWNO=SWNOX
  1524. 31275  RETURN
  1525. 31280 '
  1526. 32000 '
  1527. 32010 *ABOUT表示
  1528. 32020  X1A=146:Y1A=150:XPA=326:YPA=100
  1529. 32030  MOUSE 1,,,0
  1530. 32040  GET@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
  1531. 32050  LOAD@ TIFDRV$+"\hk2logo.tif",(X1A,Y1A)
  1532. 32060  MOUSE 1,,,1
  1533. 32070  CMES$=ABOUT$:GOSUB *確認
  1534. 32080  PUT@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
  1535. 32090  RETURN
  1536. 32100 '
  1537. 32300 *PROCD:'処理状況表示
  1538. 32310  ON PCCD GOTO *PC01,*PC02,*PC03
  1539. 32320 *PC01
  1540. 32330  GET@A(150,200)-(483,256),MD_SB#
  1541. 32340  MOUSE 1,,,0:LOAD@ TIFDRV$+"\HK2PROC.TIF",(150,200):MOUSE 1,,,1
  1542. 32345  SYMBOL(226,204),PCMES$,.75!,.75!,0
  1543. 32350  RETURN
  1544. 32360 *PC02
  1545. 32370  PUT@A(150,200)-(483,256),MD_SB#
  1546. 32380  RETURN
  1547. 32400 *PC03:' pcmax,pccur,pcint
  1548. 32410  XP0=157:YP0=240:XPM=477:YPM=250
  1549. 32420  IF (PCCUR MOD PCINT)<>0 THEN RETURN
  1550. 32430  XP=XP0+INT((XPM-XP0)*(PCCUR/PCMAX))
  1551. 32440  LINE(XP0,YP0)-(XP,YPM),PSET,1,BF
  1552. 32450  RETURN
  1553. 32460 '
  1554. 34000 *PATHMAKE:'---------- パス作成 -------------------------------
  1555. 34005  DRV$=LEFT$(XDRV$,2)
  1556. 34010  IF LEN(XDRV$)=3 THEN DRV$=LEFT$(XDRV$,2):PATH$="":GOTO 34020
  1557. 34015  PATH$=RIGHT$(XDRV$,LEN(XDRV$)-2)
  1558. 34020  RETURN
  1559. 34030 '
  1560. 35000 '------------------------------------------------------------------
  1561. 35010 *辞書データ作成'                         / 家計簿システム         /
  1562. 35020 '    HKWRDM.BAS  Copyrigit(C) T.Komura  / Version 1.1            /
  1563. 35030 '    Version 1.0 1993.08.04            / 辞書データ作成ルーチン /
  1564. 35040 '
  1565. 35050 MESN=14:GOSUB *MESDSP:SWNOX=SWNO
  1566. 35060 CMES$="辞書データの作成":GOSUB *確認
  1567. 35070 ON SWNO GOTO 35080,35150
  1568. 35080 MESN=15:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  1569. 35090 GOSUB *FLKILL
  1570. 35100 GOSUB *単語選択メイン
  1571. 35110 GOSUB *分類ソートメイン
  1572. 35120 LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 1
  1573. 35130 PRINT "辞書データ作成完了            "
  1574. 35140 MESN=14:GOSUB *SNDMSG
  1575. 35150 SWNO=SWNOX
  1576. 35160 RETURN
  1577. 35170 '
  1578. 35180 'DIM DYN$(20),DRM$(20)
  1579. 35190 'DIM WRD$(1000),WLN(1000),WFR(1000)
  1580. 35200 *単語選択メイン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  1581. 35210 GOSUB *SHKIOPN:CLOSE
  1582. 35220 FOR RR=2 TO IR
  1583. 35230   GOSUB *SHKISRC
  1584. 35240   FOR RDY=1 TO 31
  1585. 35250     LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 4
  1586. 35260     PRINT "単語検索中  ";IYM$;" / ";RIGHT$(STR$(RDY),2)
  1587. 35270     GOSUB *SHKDGET
  1588. 35280     FOR II=1 TO 15
  1589. 35290       GOSUB *WORDSELECT
  1590. 35300       GOSUB *WORDWRITE
  1591. 35310     NEXT II
  1592. 35320   NEXT RDY
  1593. 35330 NEXT RR
  1594. 35340 RETURN'
  1595. 35350 '
  1596. 35360 *WORDSELECT:'単語選択
  1597. 35370  FOR KK=1 TO 9:SRM$(KK)="":NEXT KK
  1598. 35380 ' PRINT (DRM$(II))
  1599. 35390  SC=0
  1600. 35400  SWL=KLEN(DRM$(II)):IF SWL=0 THEN 35540
  1601. 35410  CKP(1)=KINSTR(DRM$(II)," ")
  1602. 35420  CKP(2)=KINSTR(DRM$(II),"・")
  1603. 35430  CKP(3)=KINSTR(DRM$(II),"/")
  1604. 35440  IF CKP(1)=0 AND CKP(2)=0 AND CKP(3)=0 THEN CKP=SWL:GOTO 35500
  1605. 35450  CKP=32
  1606. 35460  FOR KK=1 TO 3:IF CKP(KK)=0 THEN 35480
  1607. 35470    IF CKP>CKP(KK) THEN CKP=CKP(KK)
  1608. 35480  NEXT KK
  1609. 35490  IF CKP=1 THEN 35510
  1610. 35500  SC=SC+1:SRM$(SC)=KLEFT$(DRM$(II),CKP-1)
  1611. 35510  IF CKP>=SWL THEN 35540
  1612. 35520  DRM$(II)=KRIGHT$(DRM$(II),SWL-CKP)
  1613. 35530  GOTO 35400
  1614. 35540  RETURN
  1615. 35550 '
  1616. 35560 *WORDWRITE:'単語一時ファイル格納
  1617. 35570  EXF$="TXT":GOSUB *FLNCHK
  1618. 35580  OPEN "A",#3,FLN$
  1619. 35590  FOR LL=1 TO SC:IF SC=0 THEN 35620
  1620. 35600    PRINT #3,SRM$(LL)
  1621. 35610  '  PRINT II,SRM$(LL)
  1622. 35620  NEXT LL
  1623. 35630  CLOSE #3
  1624. 35640  RETURN
  1625. 35650 '
  1626. 35660 '
  1627. 35670 *分類ソートメイン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  1628. 35680 FOR II=1 TO 15
  1629. 35690   EXF$="TXT":GOSUB *FLNCHK
  1630. 35700   OPEN "I",#1,FLN$
  1631. 35710   WRDC=1
  1632. 35720   INPUT #1,A$
  1633. 35730     WRD$(WRDC)=A$
  1634. 35740     WLN(WRDC)=LEN(A$)
  1635. 35750     WFR(WRDC)=1
  1636. 35760 '---------------------------分類
  1637. 35770   IF EOF(1)<>0 THEN 35930
  1638. 35780     LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 4
  1639. 35790     PRINT CFI$(II);"  使用頻度調査中     ";
  1640. 35800     INPUT #1,A$
  1641. 35810     FIND=0
  1642. 35820     FOR JJ=1 TO WRDC
  1643. 35830       IF A$=WRD$(JJ) THEN FIND=1:NOF=JJ:JJ=WRDC+1
  1644. 35840     NEXT JJ
  1645. 35850     IF FIND=1 THEN WFR(NOF)=WFR(NOF)+1:GOTO 35770
  1646. 35860     WRDC=WRDC+1
  1647. 35870     WRD$(WRDC)=A$
  1648. 35880     WLN(WRDC)=LEN(A$)
  1649. 35890     WFR(WRDC)=1
  1650. 35900 '    PRINT "分類";WRDC,WLN(WRDC),WFR(WRDC),WRD$(WRDC)
  1651. 35910   GOTO 35770
  1652. 35920 '---------------------------ソート
  1653. 35930   ROOP=WRDC-1
  1654. 35940   LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 4
  1655. 35950   PRINT CFI$(II);"  使用頻度順ソート中  ";
  1656. 35960   CHGF=0
  1657. 35970   FOR JJ=1 TO ROOP
  1658. 35980     IF WFR(JJ)>=WFR(JJ+1) THEN 36030
  1659. 35990       WRD$=WRD$(JJ)      :WLN=WLN(JJ)      :WFR=WFR(JJ)
  1660. 36000       WRD$(JJ)=WRD$(JJ+1):WLN(JJ)=WLN(JJ+1):WFR(JJ)=WFR(JJ+1)
  1661. 36010       WRD$(JJ+1)=WRD$    :WLN(JJ+1)=WLN    :WFR(JJ+1)=WFR
  1662. 36020       CHGF=1
  1663. 36030   NEXT JJ
  1664. 36040     IF CHGF=0 THEN 36080
  1665. 36050     ROOP=ROOP-1
  1666. 36060     IF ROOP=0 THEN 36080
  1667. 36070   GOTO 35960
  1668. 36080 '---------------------------ファイル出力
  1669. 36090   EXF$="DIC":GOSUB *FLNCHK
  1670. 36100   OPEN "A",#2,FLN$
  1671. 36110   LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 6
  1672. 36120   PRINT CFI$(II);"  辞書データ作成中    ";
  1673. 36130   FOR JJ=1 TO WRDC
  1674. 36140     PRINT #2,RIGHT$(STR$(100+WLN(JJ)),2);",";
  1675. 36150 '      PRINT "出力";II;JJ,RIGHT$(STR$(100+WLN(JJ)),2);"/";
  1676. 36160     PRINT #2,RIGHT$(STR$(10000+WFR(JJ)),4);",";
  1677. 36170 '      PRINT RIGHT$(STR$(10000+WFR(JJ)),4);"/";
  1678. 36180     PRINT #2,WRD$(JJ)
  1679. 36190 '      PRINT WRD$(JJ)
  1680. 36200   NEXT JJ
  1681. 36210   CLOSE #2
  1682. 36220 '---------------------------
  1683. 36230   CLOSE #1
  1684. 36240 NEXT II
  1685. 36250 RETURN
  1686. 36260 '
  1687. 36270 'sub routine for HKWRD
  1688. 36280 '////////////////////////////////////////////////////////////////
  1689. 36290 *SHKIOPN:'---------- インデックスファイルオープン
  1690. 36300  XDRV$=DATDRV$:GOSUB *PATHMAKE
  1691. 36330  FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
  1692. 36340  OPEN "R",#2,FLN$
  1693. 36350  FIELD #2,6 AS I$(1),32 AS I$(2)
  1694. 36360  IR=LOF(2)
  1695. 36370  RETURN
  1696. 36380 '
  1697. 36390 *SHKDOPN:'---------- 家計簿データファイルオープン
  1698. 36400  XDRV$=DATDRV$:GOSUB *PATHMAKE
  1699. 36430  FLN$=DRV$+"(1120)"+PATH$+"\HL"+IYM$+".DAT"
  1700. 36440  OPEN "R",#1,FLN$
  1701. 36450  FIELD #1,128 AS D$(1),10*16 AS D$(2),52*4 AS D$(3),52*4 AS D$(4),52*4 AS D$(5),52*4 AS D$(6)
  1702. 36460  AR=LOF(1)
  1703. 36470  RETURN
  1704. 36480 '
  1705. 36490 *SHKISRC:'---------- インデックスファイル検索
  1706. 36500  FIDX=0
  1707. 36510  GOSUB *SHKIOPN
  1708. 36520    GET #2,RR
  1709. 36530    IYM$=I$(1):IMAK$=I$(2)
  1710. 36540  CLOSE #2
  1711. 36550  RETURN
  1712. 36560 '
  1713. 36570 *SHKDGET:'---------- 家計簿データ読み込み
  1714. 36580  GOSUB *SHKDOPN
  1715. 36590  R=RDY
  1716. 36600  GET #1,R
  1717. 36610  DEV$=D$(1)
  1718. 36620  FOR II=1 TO 16:DYN$(II   )=MID$(D$(2),(II-1)*10+1,10):NEXT II
  1719. 36630  FOR II=1 TO  4:DRM$(II+ 0)=MID$(D$(3),(II-1)*52+1,52):NEXT II
  1720. 36640  FOR II=1 TO  4:DRM$(II+ 4)=MID$(D$(4),(II-1)*52+1,52):NEXT II
  1721. 36650  FOR II=1 TO  4:DRM$(II+ 8)=MID$(D$(5),(II-1)*52+1,52):NEXT II
  1722. 36660  FOR II=1 TO  4:DRM$(II+12)=MID$(D$(6),(II-1)*52+1,52):NEXT II
  1723. 36680  CLOSE #1
  1724. 36690  RETURN
  1725. 36700 '
  1726. 36710 *FLNCHK:'----------- ファイル名チェック'
  1727. 36720  DRV$=LEFT$(DICDRV$,2)
  1728. 36730  IF LEN(DICDRV$)=3 THEN DRV$=LEFT$(DICDRV$,2):PATH$="":GOTO 36750
  1729. 36740  PATH$=RIGHT$(DICDRV$,LEN(DICDRV$)-2)
  1730. 36750  FLN$=DRV$+PATH$+"\HKWRD"+RIGHT$(STR$(100+II),2)+"."+EXF$
  1731. 36760  FLNX$=DRV$+"(1)"+PATH$+"\HKWRD"+RIGHT$(STR$(100+II),2)+"."+EXF$
  1732. 36770  RETURN
  1733. 36780 '
  1734. 36790 *FLKILL:'----------- ファイル消去
  1735. 36800  FOR II=1 TO 15
  1736. 36810    EXF$="TXT":GOSUB *FLNCHK
  1737. 36820    OPEN "R",#1,FLNX$:FIELD #1,1 AS DUMMYD$
  1738. 36830    CLOSE #1
  1739. 36840    KILL FLN$
  1740. 36850    EXF$="DIC":GOSUB *FLNCHK
  1741. 36860    OPEN "R",#1,FLNX$:FIELD #1,1 AS DUMMYD$
  1742. 36870    CLOSE #1
  1743. 36880    KILL FLN$
  1744. 36890  NEXT II
  1745. 36900  RETURN
  1746. 36910 '
  1747. 36920 '
  1748. 37200 *HKTFOPN:'---------- 総計データファイルオープン
  1749. 37210  XDRV$=PRGDRV$:GOSUB *PATHMAKE
  1750. 37240  FLN$=DRV$+"(660)"+PATH$+"\HTOTAL"+".DAT"
  1751. 37250  OPEN "R",#4,FLN$
  1752. 37262  FIELD #4,10*15 AS DT$(1),10*15 AS DT$(2),10*18 AS DT$(3),10*18 AS DT$(4)
  1753. 37270  AR=LOF(4)
  1754. 37280  RETURN
  1755. 37290 '
  1756. 37300 *HKTFPUT:'---------- 総計データ書き込み
  1757. 37310  GOSUB *HKTFOPN
  1758. 37330  DX$="":FOR II=1 TO 15:DX$=DX$+TDYN1$(II) :NEXT II:LSET DT$(1)=DX$
  1759. 37332  DX$="":FOR II=1 TO 15:DX$=DX$+TDYN2$(II) :NEXT II:LSET DT$(2)=DX$
  1760. 37334  DX1$="":FOR II=1 TO 16:DX1$=DX1$+TSDYN1$(II):NEXT II
  1761. 37336  DX2$="":FOR II=1 TO 16:DX2$=DX2$+TSDYN2$(II):NEXT II
  1762. 37340  LSET DT$(3)=DX1$+SDYN$(17)+DATE$+SPACE$(2)
  1763. 37345  LSET DT$(4)=DX2$+SDYN$(18)+DATE$+SPACE$(2)
  1764. 37360  PUT #4,1
  1765. 37370  CLOSE #4
  1766. 37380  RETURN
  1767. 37390 '
  1768. 39000 '//////////////////////////////////////////////////
  1769. 39010 *CONFIGファイルチェック2'  V2.3 1994.06.19
  1770. 39020  CFGLN=0
  1771. 39030  OPEN "R",#1,"(1)HK.CFG"
  1772. 39040  FIELD #1,1 AS D$
  1773. 39050  IF LOF(1)=0 THEN *CFGFE1
  1774. 39060  CLOSE
  1775. 39070  OPEN "I",#1,"HK.CFG"
  1776. 39075  CFNO=0 :GOSUB *CFGREAD:ABOUT$=CFG$ :'-- about$ 
  1777. 39080  CFNO=16:GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$
  1778. 39082  FILES ,C,ARY&:N=ARY&(1):DIM ARY$(N)
  1779. 39084  FILES ,N,ARY$:PRGDRV$=ARY$(0):ERASE ARY$
  1780. 39090  CFNO=17:GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$
  1781. 39100  CFNO=19:GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$
  1782. 39110  TIFDRV$=PRGDRV$+"\TIFF"            :'-- TIFDRV$
  1783. 39120  CFNO=18:GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$
  1784. 39130  CFNO=22:GOSUB *CFGREAD             :'-- SNDMF
  1785. 39140    IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
  1786. 39150    SNDMF=VAL(RIGHT$(CFG$,1))
  1787. 39160    CFI$(22)=RIGHT$(CFG$,1)
  1788. 39170  CFNO=23:GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$
  1789. 39180  CFNO=20:GOSUB *CFGREAD             :'-- SWAIT
  1790. 39190    IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
  1791. 39200    SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
  1792. 39210    CFI$(20)=RIGHT$(CFG$,LEN(CFG$)-5)
  1793. 39220  FOR II=1 TO 15                     :'-- CFI
  1794. 39230    CFNO=II:GOSUB *CFGREAD
  1795. 39240  NEXT II
  1796. 39250  CFNO=24:GOSUB *CFGREAD             :'-- DICIF
  1797. 39260    IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
  1798. 39270    DICIF=VAL(RIGHT$(CFG$,1))
  1799. 39280    CFI$(24)=RIGHT$(CFG$,1)
  1800. 39290  CFNO=25:GOSUB *CFGREAD             :'-- DICSF
  1801. 39300    IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
  1802. 39310    DICSF=VAL(RIGHT$(CFG$,1))
  1803. 39320    CFI$(25)=RIGHT$(CFG$,1)
  1804. 39330  CFNO=26:GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$
  1805. 39335  CFNO=28:GOSUB *CFGREAD             :'-- TAXR$
  1806. 39336    IF LEFT$(CFG$,4)<>"TAXR" THEN *CFGFE2
  1807. 39338    CFI$(28)=RIGHT$(CFG$,LEN(CFG$)-5)
  1808. 39339    TAXR$=CFI$(48)
  1809. 39340  CFNO=27:GOSUB *CFGREAD             :'-- CALCF
  1810. 39350    IF LEFT$(CFG$,5)<>"CALCF" THEN *CFGFE2
  1811. 39360    CALCF=VAL(RIGHT$(CFG$,1))
  1812. 39370    CFI$(27)=RIGHT$(CFG$,1)
  1813. 39380  CFNO=29:GOSUB *CFGREAD             :'-- SDAY
  1814. 39390    IF LEFT$(CFG$,4)<>"SDAY" THEN *CFGFE2
  1815. 39400    SDAY=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
  1816. 39410    CFI$(29)=RIGHT$(CFG$,LEN(CFG$)-5)
  1817. 39420  CFNO=30:GOSUB *CFGREAD             :'-- SSYMD
  1818. 39425    IF LEFT$(CFG$,5)<>"SSYMD" THEN *CFGFE2
  1819. 39430    SSYMD$=RIGHT$(CFG$,LEN(CFG$)-6)
  1820. 39435    CFI$(30)=SSYMD$
  1821. 39440    SSY$=LEFT$(CFI$(30),4) :SSY=VAL(SSY$)
  1822. 39442    SSM$=MID$(CFI$(30),5,2):SSM=VAL(SSM$)
  1823. 39444    SSD$=RIGHT$(CFI$(30),2):SSD=VAL(SSD$)
  1824. 39500  CLOSE
  1825. 39510  RETURN
  1826. 39618 '
  1827. 39630 *CFGFE1
  1828. 39635  LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルが見当たりません。 家計簿を終了します。"
  1829. 39640  CLOSE:WAIT 100:GOTO *ENDP
  1830. 39645 *CFGFE2
  1831. 39650  LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの内容に誤りがあります。 家計簿を終了します。"
  1832. 39655  CLOSE:WAIT 100:GOTO *ENDP
  1833. 39660 *CFGFE3
  1834. 39665  LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
  1835. 39670  CLOSE:WAIT 100:GOTO *ENDP
  1836. 39675 *CFGREAD
  1837. 39680  IF EOF(1)<>0 THEN *CFGFE3
  1838. 39685  LINE INPUT #1,CFG$
  1839. 39690  CFGLN=CFGLN+1:CFGX$(CFGLN)=CFG$
  1840. 39695  IF LEFT$(CFG$,1)="/" THEN CFIDN(CFGLN)=0:GOTO 39680
  1841. 39700  CFI$(CFNO)=CFG$:CFIDN(CFGLN)=CFNO
  1842. 39705  RETURN
  1843. 39710 '
  1844. 39715 '///////////////////////////////////////////////////////
  1845. 39720 *CONFIGファイル出力'  V2.2 1993.12.22
  1846. 39725  OPEN "R",#1,"(1)HKOLD.CFG"
  1847. 39730  FIELD #1,1 AS D$
  1848. 39735  CLOSE
  1849. 39740  KILL "HKOLD.cfg"
  1850. 39745  NAME "HK.CFG" AS "HKOLD.CFG"
  1851. 39750 '
  1852. 39755  OPEN "O",#1,"HK.CFG"
  1853. 39760  FOR II=1 TO CFGLN:'PRINT CFIDN(II);
  1854. 39765    IF CFIDN(II)<>0 THEN GOSUB *CFIPUT:GOTO 39775
  1855. 39770    PRINT #1,CFGX$(II)
  1856. 39775  NEXT II
  1857. 39780  ENDF$="/-------------------- "+TIME$+" "+DATE$+" HK.CFG end of file"
  1858. 39785  PRINT #1,ENDF$
  1859. 39790  CLOSE
  1860. 39795  RETURN
  1861. 39800 '
  1862. 39805 *CFIPUT
  1863. 39810  CFNO=CFIDN(II)
  1864. 39812  IF CFNO=16 THEN CFI$(CFNO)=PRGDRV$
  1865. 39815  IF CFNO=22 THEN CFI$(CFNO)="SNDMF="+CFI$(CFNO)
  1866. 39820  IF CFNO=20 THEN CFI$(CFNO)="WAIT=" +CFI$(CFNO)
  1867. 39825  IF CFNO=24 THEN CFI$(CFNO)="DICIF="+CFI$(CFNO)
  1868. 39830  IF CFNO=25 THEN CFI$(CFNO)="DICSF="+CFI$(CFNO)
  1869. 39832  IF CFNO=27 THEN CFI$(CFNO)="CALCF="+CFI$(CFNO)
  1870. 39835  IF CFNO=28 THEN CFI$(CFNO)="TAXR="+CFI$(CFNO)
  1871. 39840  IF CFNO=29 THEN CFI$(CFNO)="SDAY=" +CFI$(CFNO)
  1872. 39845  IF CFNO=30 THEN CFI$(CFNO)="SSYMD="+CFI$(CFNO)
  1873. 39850  PRINT #1,CFI$(CFNO)
  1874. 39855  RETURN
  1875. 39860 '
  1876. 40000 *ボタン座標:'-------------------------------------------------------
  1877. 40010 DATA 6   'SWGN        スイッチグループ数 
  1878. 40020 '/////////////////////////////
  1879. 40030 '-------------------- [G1] メインスイッチグループ
  1880. 40040 '    SWN(G),SMX,SMY,SMW
  1881. 40050 DATA 43               :'ボタン個数
  1882. 40060 '    X1 ,X2 ,Y1 ,Y2
  1883. 40070 DATA 000,639,000,479  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  1884. 40080 DATA 000,000,000,000  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  1885. 40090 '--------------------
  1886. 40100 '    XB1 XB2 YB1 YB2 
  1887. 40110 DATA   0,123,  0, 22  '  HK2   1
  1888. 40120 DATA 124,168,  5, 22  '記  入  2
  1889. 40130 DATA 169,212,  5, 22  '検  索  3
  1890. 40140 DATA 213,256,  5, 22  '分  析  4
  1891. 40150 DATA 257,300,  5, 22  'カレンダー  5
  1892. 40160 DATA 301,344,  5, 22  '設  定  6
  1893. 40170 DATA 444,567,  0, 22  '日  付  7
  1894. 40180 DATA 568,591,  0, 22  'clock   8
  1895. 40190 DATA 592,615,  0, 22  'help    9
  1896. 40200 DATA 616,639,  0, 22  'END    10
  1897. 40210 '
  1898. 40220 DATA 445,472, 30, 46  '累積算 11
  1899. 40222 DATA 544,591, 28, 54  '読  出 12
  1900. 40224 DATA 592,639, 28, 54  '保  存 13
  1901. 40230 '
  1902. 40240 DATA 118,135,133,146  'cfi01  14   1
  1903. 40250 DATA 118,135,148,161  'cfi02  15   2
  1904. 40260 DATA 118,135,163,176  'cfi03  16   3
  1905. 40270 DATA 118,135,185,198  'cfi04  17   4
  1906. 40280 DATA 118,135,200,213  'cfi05  18   5
  1907. 40300 DATA 118,135,215,228  'cfi06  19   6
  1908. 40310 DATA 118,135,230,243  'cfi07  20   7
  1909. 40320 DATA 118,135,245,258  'cfi08  21   8
  1910. 40330 DATA 118,135,260,273  'cfi09  22   9
  1911. 40350 DATA 118,135,275,288  'cfi10  23  10
  1912. 40360 DATA 118,135,290,303  'cfi11  24  11
  1913. 40370 DATA 118,135,305,318  'cfi12  25  12
  1914. 40380 DATA 118,135,320,333  'cfi13  26  13
  1915. 40390 DATA 118,135,335,348  'cfi14  27  14
  1916. 40400 DATA 118,135,350,363  'cfi15  28  15
  1917. 40410 '
  1918. 40420 DATA 302,328,133,146  'prgd    29  16
  1919. 40430 DATA 302,328,148,161  'datad   30  17
  1920. 40440 DATA 302,328,163,176  'fmbd    31  18
  1921. 40450 DATA 302,328,178,191  'workd   32  19
  1922. 40470 DATA 302,314,227,240  'wait up 33  20
  1923. 40480 DATA 316,328,227,240  'wait dn 34  21
  1924. 40490 DATA 302,328,251,264  'sndf    35  22
  1925. 40500 DATA 302,328,270,283  'sndd    36  23
  1926. 40510 DATA 373,399,295,308  'dicf1   37  24
  1927. 40520 DATA 510,536,295,308  'dicf2   38  25
  1928. 40530 DATA 302,328,314,327  'dicd    39  26
  1929. 40540 DATA 302,328,339,352  'calcf   40  27
  1930. 40550 DATA 510,536,339,352  'taxr    41  28
  1931. 40570 DATA 302,328,363,376  'sday    42  29
  1932. 40580 DATA 302,328,382,395  'symd    43  30
  1933. 40640 '
  1934. 40900 '-------------------- スイッチグループ[2]ファイルセレクタ
  1935. 40910 DATA 21               :'ボタン個数
  1936. 40920 '    X1 ,X2 ,Y1 ,Y2
  1937. 40930 DATA 141,491,214,434  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  1938. 40940 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  1939. 40950 '--------------------
  1940. 41010 '      XB1,XB2,YB1,YB2
  1941. 41020  DATA  333,345,  4, 15 :'1  exit
  1942. 41030  DATA    6, 24, 43, 76 :'2  prev.drive
  1943. 41040  DATA   25, 58, 43, 76 :'3  curr.drive
  1944. 41050  DATA   59, 77, 43, 76 :'4  next.drive
  1945. 41060  DATA  333,345, 25, 37 :'5  directry up
  1946. 41070  DATA  333,345, 43, 55 :'6  list up
  1947. 41080  DATA  333,345,178,190 :'7  list down
  1948. 41090  DATA  242,284,198,214 :'8  exec
  1949. 41100  DATA  285,327,198,214 :'9  cancel
  1950. 41110  DATA    3, 16,  3, 16 :'10 drag
  1951. 41120  DATA   86,163,199,213 :'11 key in
  1952. 41130  DATA   86,327, 45, 58 :'12 list 1ummy
  1953. 41140  DATA   86,327, 59, 72 :'13 list 2ummy
  1954. 41150  DATA   86,327, 73, 86 :'14 list 3ummy
  1955. 41160  DATA   86,327, 87,100 :'15 list 4ummy
  1956. 41170  DATA   86,327,101,114 :'16 list 5ummy
  1957. 41180  DATA   86,327,115,128 :'17 list 6ummy
  1958. 41190  DATA   86,327,129,142 :'18 list 7ummy
  1959. 41200  DATA   86,327,143,156 :'19 list 8ummy
  1960. 41210  DATA   86,327,157,170 :'20 list 9ummy
  1961. 41220  DATA   86,327,171,184 :'21 list 10dummy
  1962. 41560 '
  1963. 42000 '-------------------- スイッチグループ[3] 確認
  1964. 42010 DATA 3                :'ボタン個数
  1965. 42020 '    X1 ,X2 ,Y1 ,Y2
  1966. 42030 DATA 106,522,258,287  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  1967. 42040 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  1968. 42050 '--------------------
  1969. 42060 '    XB1 XB2 YB1 YB2
  1970. 42070 DATA 338,369,  6, 23  ' OK     01
  1971. 42080 DATA 370,401,  6, 23  ' NG     02
  1972. 42090 DATA   8, 27,  5, 24  'drag
  1973. 42100 '
  1974. 42110 '
  1975. 42120 '-------------------- スイッチグループ(4) 
  1976. 42130 DATA 22               :'ボタン個数
  1977. 42140 '    X1 ,X2 ,Y1 ,Y2
  1978. 42150 DATA 498,639,125,409  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  1979. 42160 DATA 498,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  1980. 42170 '    XB1 XB2 YB1 YB2 SWM$         SMC
  1981. 42180 DATA   6, 35, 25, 43  ' 取消
  1982. 42190 DATA  36, 65, 25, 43  ' 消去
  1983. 42200 DATA  66,101, 25, 43  ' 入力
  1984. 42210 DATA 102,118, 25, 43  ' ヌ
  1985. 42220 DATA 119,135, 25, 43  ' ネ
  1986. 42230 DATA 103,135, 55, 68  ' 1
  1987. 42240 DATA 103,135, 69, 82  ' 2
  1988. 42250 DATA 103,135, 83, 96  ' 3
  1989. 42260 DATA 103,135, 97,110  ' 4
  1990. 42270 DATA 103,135,111,124  ' 5
  1991. 42280 DATA 103,135,125,138  ' 6
  1992. 42290 DATA 103,135,139,152  ' 7
  1993. 42300 DATA 103,135,153,166  ' 8
  1994. 42310 DATA 103,135,167,180  ' 9
  1995. 42320 DATA 103,135,181,194  ' 10
  1996. 42330 DATA 103,135,195,208  ' 11
  1997. 42340 DATA 103,135,209,222  ' 12
  1998. 42350 DATA 103,135,223,236  ' 13
  1999. 42360 DATA 103,135,237,250  ' 14
  2000. 42370 DATA 103,135,251,264  ' 15
  2001. 42380 DATA 103,135,265,278  ' 16
  2002. 42390 DATA   5, 18,  4, 17  'drag
  2003. 42400 '-------------------- スイッチグループ(5) Helpグループ
  2004. 42410 DATA 6               :'ボタン個数
  2005. 42420 '    X1 ,X2 ,Y1 ,Y2
  2006. 42430 DATA  60,577,100,421  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2007. 42440 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2008. 42450 '
  2009. 42460 '    XB1 XB2 YB1 YB2 SWM$     SMC SWNO.
  2010. 42470 DATA 499,512, 25, 38  '前頁
  2011. 42480 DATA 499,512, 39, 52  '前行
  2012. 42490 DATA 499,512,289,302  '次行
  2013. 42500 DATA 499,512,303,316  '次頁
  2014. 42510 DATA 499,512,  6, 19  '終了
  2015. 42520 DATA   6, 17,  7, 18  'drag
  2016. 42530 '
  2017. 42540 '-------------------- スイッチグループ[6] デジタル時計
  2018. 42550 DATA 2                :'ボタン個数
  2019. 42560 '    X1 ,X2 ,Y1 ,Y2
  2020. 42570 DATA  46,607,100,306  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2021. 42580 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2022. 42590 '--------------------
  2023. 42600 '    XB1 XB2 YB1 YB2 SWM$         SMC
  2024. 42610 DATA 543,561,  0, 18  ' end    01
  2025. 42620 DATA   3, 16,  3, 16  ' drag   02
  2026. 42630 '
  2027. 50000 *設定内容表示座標
  2028. 50010 'SWNO
  2029. 50020 DATA 30
  2030. 50100 '      X   Y  C  L        ITEM  CFNO
  2031. 50200 DATA 142,134,15, 6 '   --- CFI     1
  2032. 50210 DATA 142,149,15, 6 '   --- CFI     2
  2033. 50220 DATA 142,164,15, 6 '   --- CFI     3
  2034. 50230 DATA 142,186,15, 6 '   --- CFI     4
  2035. 50240 DATA 142,201,15, 6 '   --- CFI     5
  2036. 50250 DATA 142,216,15, 6 '   --- CFI     6
  2037. 50260 DATA 142,231,15, 6 '   --- CFI     7
  2038. 50270 DATA 142,246,15, 6 '   --- CFI     8
  2039. 50280 DATA 142,261,15, 6 '   --- CFI     9
  2040. 50290 DATA 142,276,15, 6 '   --- CFI    10
  2041. 50300 DATA 142,291,15, 6 '   --- CFI    11
  2042. 50310 DATA 142,306,15, 6 '   --- CFI    12 
  2043. 50320 DATA 142,321,15, 6 '   --- CFI    13
  2044. 50330 DATA 142,336,15, 6 '   --- CFI    14
  2045. 50340 DATA 142,351,15, 6 '   --- CFI    15
  2046. 50600 '                               
  2047. 50610 DATA 332,134, 4,30 '   --- PRGD   16
  2048. 50620 DATA 332,149,13,30 '   --- DATD   17
  2049. 50630 DATA 332,164, 9,30 '   --- FMBD   18
  2050. 50640 DATA 332,179, 9,30 '   --- RAMD   19
  2051. 50670 DATA 338,228,12, 3 '   --- waitup 20
  2052. 50680 DATA 338,228,12, 3 '   --- waitdn 21
  2053. 50690 DATA 332,252,12, 6 '   --- SNDM   22
  2054. 50700 DATA 332,271, 9,30 '   --- SNDD   23
  2055. 50710 DATA 404,296,12, 6 '   --- DICF1  24
  2056. 50720 DATA 541,296,12, 6 '   --- DICF2  25
  2057. 50730 DATA 332,315, 9,30 '   --- DICD   26
  2058. 50740 DATA 332,340,12, 6 '   --- SCAL   27
  2059. 50750 DATA 545,340,15, 5 '   --- taxr   28
  2060. 50760 DATA 352,364,15, 2 '   --- SDAY   29
  2061. 50770 DATA 340,383,15, 8 '   --- SSYMD  30
  2062. 50780 '
  2063. 51090 '
  2064. 52000 *DCLOCKDATA
  2065. 52010 '    1,2,3,4,5,6,7 
  2066. 52020 DATA 1,1,1,1,1,1,0 '0     (1)
  2067. 52030 DATA 0,1,1,0,0,0,0 '1     ---
  2068. 52040 DATA 1,1,0,1,1,0,1 '2    |   |(2)
  2069. 52050 DATA 1,1,1,1,0,0,1 '3 (6)|(7)|        ●(8)
  2070. 52060 DATA 0,1,1,0,0,1,1 '4     ---
  2071. 52070 DATA 1,0,1,1,0,1,1 '5    |   |(3)     ●(9)
  2072. 52080 DATA 1,0,1,1,1,1,1 '6 (5)|   |
  2073. 52090 DATA 1,1,1,0,0,0,0 '7     ---
  2074. 52100 DATA 1,1,1,1,1,1,1 '8     (4)
  2075. 52110 DATA 1,1,1,1,0,1,1 '9    
  2076. 52120 '    dgx,dgy 
  2077. 52130 DATA  80, 40       '(1)
  2078. 52140 DATA 120, 70       '(2)
  2079. 52150 DATA 110,140       '(3)
  2080. 52160 DATA  80,180       '(4)
  2081. 52170 DATA  40,140       '(5)
  2082. 52180 DATA  50, 70       '(6)
  2083. 52190 DATA  80,100       '(7)
  2084. 52200 DATA 280, 80       '(8)
  2085. 52210 DATA 280,140       '(9)
  2086. 52220 '   ofset
  2087. 52230 DATA 0      '1桁
  2088. 52240 DATA 120    '2桁
  2089. 52250 DATA 280    '3桁
  2090. 52260 DATA 400    '4桁
  2091. 52270 '
  2092. 60000 '
  2093. 60010 ' 座標確認 DEBUG ROUTINE
  2094. 60020 '
  2095. 60030 MOUSE 0:MOUSE 1,0,0,1
  2096. 60040  IF MOUSE(2,1)<>0 THEN STOP
  2097. 60050  IF MOUSE(2,0)=0 THEN 60050
  2098. 60060  X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
  2099. 60070  LOCATE 2,24:COLOR 7:PRINT "X=";X_M,"Y=";Y_M,"LX=";LX,"LY=";LY;
  2100. 60080  GOTO 60040
  2101. 61000 ' 
  2102.